Unix Socket - 輔助函式



本章描述了在進行套接字程式設計時使用的所有輔助函式。其他輔助函式在以下章節中進行了描述:埠和服務以及網路位元組序

write 函式

write 函式嘗試將 buf 指向的緩衝區中的 nbyte 個位元組寫入與開啟的檔案描述符 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 函式

read 函式嘗試從與緩衝區 fildes 關聯的檔案中讀取 nbyte 個位元組,並將這些位元組讀入 buf 指向的緩衝區。

您還可以使用 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 函式在字串 s 中放置 nbyte 個空位元組。此函式用於將所有套接字結構設定為 null 值。

void bzero(void *s, int nbyte);

此函式不返回任何內容。

引數

  • s - 指定要填充空位元組的字串。這將是指向套接字結構變數的指標。

  • nbyte - 指定要填充空值的位元組數。這將是套接字結構的大小。

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 - 指定源字串。

  • s2v - 指定目標字串。

  • nbyte - 指定要複製的位元組數。

memset 函式

memset 函式也用於以與 bzero 相同的方式設定結構變數。請檢視下面給出的語法。

void *memset(void *s, int c, int nbyte);

此函式返回指向 void 的指標;實際上,是指向已設定記憶體的指標,您需要根據需要對其進行強制轉換。

引數

  • s - 指定要設定的源。

  • c - 指定要在 nbyte 個位置上設定的字元。

  • nbyte - 指定要設定的位元組數。

廣告