用套介面實現I O

2021-06-18 20:58:49 字數 962 閱讀 9068

#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...