socketpair的用法和理解

2021-09-23 20:43:51 字數 1049 閱讀 4467

socketpair()標頭檔案:

synopsis

#include /* see notes */

#include int socketpair(int domain, int type, int protocol, int sv[2]);

socketpair()函式用於建立一對無名的、相互連線的套接子。 

如果函式成功,則返回0,建立好的套接字分別是sv[0]和sv[1];否則返回-1,錯誤碼儲存於errno中。

基本用法: 

1. 這對套接字可以用於全雙工通訊,每乙個套接字既可以讀也可以寫。例如,可以往sv[0]中寫,從sv[1]中讀;或者從sv[1]中寫,從sv[0]中讀; 

2. 如果往乙個套接字(如sv[0])中寫入後,再從該套接字讀時會阻塞,只能在另乙個套接字中(sv[1])上讀成功; 

3. 讀、寫操作可以位於同乙個程序,也可以分別位於不同的程序,如父子程序。如果是父子程序時,一般會功能分離,乙個程序用來讀,乙個用來寫。因為檔案描述副sv[0]和sv[1]是程序共享的,所以讀的程序要關閉寫描述符, 反之,寫的程序關閉讀描述符

**demo:

#include #include #include #include #include #include #include #include const char* str = "socket pair test.";

int main(int argc, char* ar**);

int socket_pair[2];

pid_t pid;

if(socketpair(af_unix, sock_stream, 0, socket_pair) == -1 )

pid = fork();

if(pid < 0) else if(pid > 0) else if(pid == 0)

for(;;)

return exit_success;

}---------------------

原文:

socketpair的用法和理解

socketpair 函式的宣告 include include int socketpair int d,int type,int protocol,int sv 2 socketpair 函式用於建立一對無名的 相互連線的套接子。如果函式成功,則返回0,建立好的套接字分別是sv 0 和sv 1 ...

repo 的一些用法和理

repo的用法 zz wget 或者 curl bin repo 用repo sync 在抓去 android source code 的時候,會經常出現一些錯誤導致 repo sync 中斷,每次都要手動開始。可以用如下的命令,來自動重複 1 while ne 0 do repo sync don...

ContentProvider的用法與理解

contentprovider是用來分享資料的乙個標準介面,所以在使用上它分為3部分 中間部分就是乙個註冊,在manifest中加provider,由主機名和路徑組陳,表示全球唯一的乙個繼承了contentprovider並實現了抽象方法的類 contentprovider部分就是向外部提供資料的部...