本教程介紹socket編程時使用的所有輔助函數,及其他輔助函數的端口和服務,元網路位元組順序的教程。
write 函數:
write函數嘗試寫入n位元組位元組從緩衝區buf中相關的檔打開檔描述符,fildes指向。
也可以使用send()函數將數據發送到另一個進程。
#include <unistd.h> int write(int fildes, const void *buf, int nbyte); |
成功完成後,write()返回fildes的檔實際寫入的位元組數。這個數字是永遠不會大於nbyte。否則,則返回-1
參數:
-
fildes: 是socket函數返回一個套接字描述符。
-
buf 要發送的數據是一個指針。
-
nbyte 是要寫入的位元組數。如果nbyte是0,write()將返回0,如果該檔是一個普通檔,沒有其他的結果,否則,結果是不確定的。
read 函數:
讀函數試圖打開檔描述符,fildes的相關的檔,到緩衝區buf指向讀nbyte位元組。
還可以使用的recv()函數來讀取數據到另一個進程。
#include <unistd.h> int read(int fildes, const void *buf, int nbyte); |
成功完成後,write()返回fildes檔實際寫入的位元組數。這個數字是永遠不會大於nbyte。否則,則返回-1。
參數:
-
fildes: 是socket函數返回一個套接字描述符。
-
buf 緩衝區讀取資訊..
-
nbyte 是要讀取的位元組數。
fork 函數:
fork函數創建一個新的進程。新進程稱為子進程調用進程(父進程)的完全相同的副本。子進程繼承父進程的許多屬性。
#include <sys/types.h> #include <unistd.h> int fork(void); |
成功完成後,fork()返回0到子進程和父進程返回子進程的進程ID。否則返回-1給父進程,沒有子進程被創建並設置errno以指示錯誤。
參數:
-
void: 不需要任何參數是必需。
bzero 函數:
bzero 函數的地方nbyte空位元組的字串s。這個函數將被用於設置具有空值的所有套接字結構。
void bzero(void *s, int nbyte); |
此函數不返回任何東西(無返回值)。
參數:
-
s: 指定字串必須用空位元組填充。這將是一個指向套接字的結構變數
-
nbyte: 指定使用null值填充位元組的數量。這將是套接字結構的大小。
bcmp 函數:
bcmp 函數比較位元組字串s1的針對位元組字串s2。兩個字串都被假定為nbyte位元組長。
int bcmp(const void *s1, const void *s2, int nbyte); |
此功能如果兩個字串相同,則返回0,否則為1。 nbyte為0時bcmp()函數總是返回0 。
參數:
-
s1: 指定要比較的第一個字串。
-
s2: 指定要比較的第二個字串。
-
nbyte: 指定的位元組數進行比較。
bcopy 函數:
bcopy 函數複製nbyte 個位元組字串s1到字串s2。正確處理重疊的字串。
void bcopy(const void *s1, void *s2, int nbyte); |
此函數不返回任何值。
參數:
-
s1: 指定的源字串。
-
s2: 指定目標字串。
-
nbyte: 指定要複製的位元組數。
memset 函數:
memset函數也可以用來設置結構變數,並以同樣的方式作為 bzero.
void *memset(void *s, int c, int nbyte); |
這個函數返回一個void指針,其實設定記憶體的指針,需要相應地釋放。
參數:
-
s: 指定源設置。
-
c: 指定要設置的字元nbyte地方..
-
nbyte: 指定的位元組數進行設置。