[Linux網路編程學習筆記]FIFO的建立和使用

來源:互聯網
上載者:User

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

FIFO由mkfifo函數建立。

#include <sys/types.h>#include <sys/stat.h>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取得。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.