|
命名管道的工作原理匿名管道應用的一個主要限制是它只能用于與親屬進行進程間通信。在命名管道被提出之后,這個限制已經(jīng)被克服了。命名管道提供與其關(guān)聯(lián)的路徑名,并作為FIFO文件存在于文件系統(tǒng)中。 這樣,即使沒有與FIFO的創(chuàng)建過程相關(guān)的進程,只要路徑可以被訪問,它們就可以通過FIFO相互通信。因此,通過FIFO,無關(guān)進程也可以交換數(shù)據(jù)。先進先出管的開啟方式與普通管不同。 普通管道包括兩個文件數(shù)據(jù)結(jié)構(gòu):對應的VFS索引節(jié)點和共享數(shù)據(jù)頁,這兩個數(shù)據(jù)結(jié)構(gòu)是在進程每次運行時創(chuàng)建的。FIFO始終存在,需要用戶打開和關(guān)閉。Linux必須處理兩種情況:讀進程在寫進程之前打開管道,讀進程在寫進程寫入數(shù)據(jù)之前讀入。此外,FIFO管道的使用方式與普通管道相同,具有相同的數(shù)據(jù)結(jié)構(gòu)和操作。 |