#include#include#include#includeint main()
z=write(s[1],cp="hello?",strlen(cp));
if(z<0)
z=read(s[0],buf,sizeof(buf));
if(z<0)
printf("s[0] receive message:%s\n",buf);
z=write(s[0],cp="go away!",8);
if(z<0)
z=read(s[1],buf,sizeof(buf));
if(z<0)
printf("s[1] receive message:%s\n",buf);
close(s[0]);
close(s[1]);
return 0;
}
執行結果:
s[0] receive message:hello?
s[1] receive message:go away!
從這個例子可以看出套介面socketpair可以實現雙向通訊
關閉套介面:
int shutdown(int s,int how);
how的取值:shut_rd,shut_wr,shut_rdwr(0,1,2)
有關套介面的close和shutdown的區別:
int s;
int d ;
d=dup(s);
close(s);
close(d);
int s;
int d;
d=dup(s);
shutdown(s,shut_rdwr);
在第二個套介面關閉之後套介面才真正的關閉
即使s通過d開啟,但是shutdown函式仍然立即將套介面徹底關閉
套介面上的標準I O 1
fopen,fread,fwrite,fflush,fclose 可以 man stdio 檢視用法 if io null 分開使用讀寫流 示例10.1 中的流io 允許同時進行讀和寫,這是允許的。但在實際應用中,分別開啟輸入和輸出流會更安全,因為實現乙個讀寫流緩衝比單獨的讀或則寫流的緩衝技術要複雜...
fuser 用檔案或者套介面表示程序
作用 fuser命令用檔案或者套介面表示程序。用法 fuser a s c 4 6 n space k i signal muvf name 或 fuser l 或 fuser v 主要選項如下。a 顯示在命令列指定的所有檔案,預設情況下,至少被乙個程序訪問的檔案才能顯示出來。c 同選項 m,用於同...
套介面程式設計
1 struct in addr 4struct sockaddr in 通用套介面位址結構 struct sockaddr int bind int struct sockaddr socklen t strcut sockaddr in serv bind sockfd,struct socka...