常用函式總結

2021-06-21 12:03:38 字數 1634 閱讀 3622

#includeunsigned long int htonl(unsigned long int hostlong);

unsigned short int htons(unsigned short int hostshort);

unsigned long int ntohl(unsigned long int netlong);

unsigned short int ntohs(unsigned short int netshort);

htonl表示host to network long,即長整形的主機位元組順序轉化為網路位元組順序。

在這4個函式中,長整形函式通常用來轉換ip位址,短整型通常用來轉換埠號。(當然也不限於此,任何格式化的資料通過網路傳輸時,否應該使用這些函式來轉換位元組順序。)

#includestruct sockaddr_in

tcp/ip協議族專用位址。

所有的專用socket位址型別的變數在實際使用的時候都需要轉化為通用socket位址型別(sockaddr),因為所有的socket程式設計介面使用的位址引數型別都是sockaddr。

#includein_addr_t inet_addr(const char* strptr);

int inet_aton(const char* cp, struct in_addr* inp);

char* inet_ntoa(struct inaddr in);

inet_addr函式將點分十進位制字串表示的ipv4位址轉化為網路位元組序整數表示的ipv4位址,他失敗時返回inaddr_none。

inet_aton與inet_addr功能相同,但是將結果儲存於引數inp指向的位址結構中,失敗時返回0,成功時返回1。

inet_ntoa將網路位元組序整數表示的ipv4位址轉化為點分十進位制表示的ipv4位址。但是需要注意的是,該函式內部用乙個靜態變數儲存轉化結果,函式的返回值指向該靜態位址,因此inet_ntoa是不可用的。

下面的這對更新的函式也能完成前面3個函式的功能,並且他們同時適用ipv4和ipv6

#includeint inet_pton(int af, const char* src, void* dst);

const char* inet_ntop(int af, const void* src, char* dst, socklen_t cnt);

inet_pton函式將字串表示的ip位址src(用點分十進位制字串表示的ipv4位址或用十六進製制字串表示的ipv6位址)轉換成用網路位元組順序整數表示的ip位址,並把轉換結果儲存於dst指向的記憶體中。其中,af引數指定位址族,可以是af_inet或者af_inet6。inet_pton成功時返回1,失敗時返回0,並設定errno。

inet_ntop函式進行相反的轉換,前3個引數的含義與inet_pton的引數相同,最後乙個引數cnt指向目標儲存單元的大小。下面兩個巨集能指定這個大小(分別用於ipv4和ipv6)。

#include#define inet_addrstrlen 16

#define inet6_addrstrlen 46

常用函式總結

isset 檢查變數是否設定 unset 銷毀變數 var dump 列印變數的詳細資訊 echo 輸出乙個或多個字串 print 輸出字串 printf 輸出格式化字串 sprintf return a formatted string print r 列印關於變數的易於解釋的資訊 d efine...

linux awk常用函式總結

gsub r,s 在整個 0中用s替代r gsub r,s,t 在整個t中用s替代r index s t 返回s中字串t的第一位置 length s 返回s長度 match s r 測試s是否包含匹配r的字串 split s a fs 在fs上將s分成序列a sprint fmt,exp 返回經fm...

MATLAB常用函式總結

currentfolder pwd addpath genpath currentfolder size 獲取矩陣的行數和列數 r size a,1 該語句返回的時矩陣 a的行數,c size a,2 該語句返回的時矩陣 a的列數。length max size zeros 函式 生成零矩陣 one...