Linux網路程式設計學習筆記 FIFO的建立和使用

2021-09-06 03:21:12 字數 641 閱讀 5350

管道只能用於在同一祖父程序建立的程序間進行通訊,fifo(先進先出)類似於管道,也只能單向傳遞資料流。不過每個fifo都有乙個路徑名與之關聯,這就允許無親緣關係的程序間可以實現通訊。fifo也稱有名管道。

fifo由mkfifo函式建立。

#include #include int mkfifo(const char *pathname, mode_t mode);
如果只是開啟乙個fifo而不是建立新的fifo,那麼就可以呼叫open()函式實現。

fifo是先進先出模式,對它的讀總是從開頭來讀,寫總是被新增到末尾。且不能對它進行lseek操作。

1.用fifo實現多客戶服務

2.系統對管道和fifo的限制

(1)乙個程序在同一時刻所能開啟的描述符的最大數目為open_max

(2)可寫進管道或fifo的最大資料量pipe_buf

通過sysconf函式可以獲得open_max的值(在shell中通過limit命令可以修改它的值),而pipe_buf的值定義在limits.h標頭檔案中,它的值在執行中通過呼叫pathconf或fpathconf取得。

Linux網路程式設計學習筆記(五)

通過捕捉sigchld訊號捕捉殭屍程序,可解決多個子程序同時連線的情況 伺服器端 include include include include include include include include include void error handling char message void...

Linux網路程式設計學習筆記 索引

一 linux基本知識 學習筆記 linux平台的檔案i o操作 學習筆記 linux平台的檔案,目錄及操作 linux學習筆記 標準輸入輸出 linux學習筆記 程序概念及控制 linux學習筆記 訊號處理 二 程序間通訊 三 傳輸層協議tcp和udp 四 tcp套接字 五 udp資料報 六 套接...

linux網路程式設計筆記

以下是對我之前學習的linux網路程式設計的一些筆記。int socket int domain,int type,int protocol type這個引數,可以加上乙個 sock nonblock,把套接字設定為非阻塞,保證這一設定的原子性。int listen int sockfd,int b...