在實踐中管道的模型有以下幾種:
1,1-1模型;
應用於兩個進程之間的通信。需要設置兩個FIFO,
2.n-1 模型
本進程適用於非交互式服務系統, 客戶進程掌握了公共FIFO的輸入端,將消息寫入管道,後臺服務進程掌握了公共FIFO的輸入端,它讀取管道中的信息,比如在線考試系統,每個考生有一個客戶進程,它將試題答案提交道公FIFO中,後臺服務進程打開公共FIFO從中收集答案。
3.n-1-n 模型
本模型適用於交互性服務系統,客戶進程除了掌握一個衆所周知的可以向後臺服務進程傳遞消息的有名管道外,每個客戶進程均擁有一個私有的 FIFO。比如購物銷售系統。。
管道的一些特性:
(1):雖然無名管道沒有路徑,不在任何目錄文件中記錄該目錄項,但是它任然是文件,佔有物理上的i節點和數據快。
(2):無名管道沒有路徑,所以無法調用open,從而導致了無名管道只能在血緣進程中以繼承的方式訪問所需的文件描述夫。
(3):無名管道一旦關閉,就不能在使用
(4):管道最大能夠存儲PIPE_BUF字節的數據,一旦達到管道最大容量,寫管道操作將阻塞,直到管道中數據被讀出爲止。
(5):管道以先進先出方式處理數據
6:管道數據一旦讀出,就從管道中刪除,所以它具有不可再現性。
以上筆記來自《精通unix下c語言編程與項目實踐》作者朱雲翔