Provided by: manpages-zh_1.6.4.0-1_all 

NAME
fifo - 先進先出的特殊檔案, 命名管道
描述
一個先進先出(FIFO)的特殊檔案(一個命名管道)類似一個管道,但它是作為檔案系統的 一部分來訪問的。 可以同 時有多個程序開啟它進行讀寫。當程序間透過 FIFO 交換資料時,核心會在其內部傳送 所有資料,而不會寫入檔案系 統。即,FIFO 特殊檔案在檔案系統中沒有任何內容; 檔案系統中的檔案條目只是作為一個參照點而已,使得程序可以 用檔案系統中的一個名字 對其進行訪問。 核心會為至少有一個程序打開了的 FIFO 特殊檔案維護單獨一個管道物件。 在資料經由 FIFO 傳輸之前,FIFO 的兩端 (讀和寫)必須同時開啟。 一般來說,開啟 FIFO 的行為會阻塞,直至另一端也被開啟。 一個程序可以使用非阻塞模式開啟一個 FIFO。這種情況下,即使寫端沒有開啟, 開啟讀端還是會成功。但是,如果讀 端沒有開啟,開啟寫端會失敗,並且得到 一個 ENXIO (裝置或地址不存在)。 在 Linux 下,不管是阻塞還是非阻塞模式,開啟一個 FIFO 用作同時讀寫都會成功。 POSIX 對於這種情況未進行定 義。這個可以用來在讀端不可用的情況下開啟寫端。 一個程序在同時用同一個 FIFO 的兩端來實現自己和自己通訊的時 候要特別小心, 應避免出現死鎖。
註釋
當一個程序企圖向讀端沒有開啟的 FIFO 寫資料的時候,程序會收到一個 SIGPIPE 訊號。 FIFO 特殊檔案可以用 mkfifo(3) 來建立,並且 ls -l 會對其新增一個特殊標記“p”進行指示。
參見
mkfifo(1), open(2), pipe(2), sigaction(2), signal(2), socketpair(2), mkfifo(3), pipe(7)
跋
本頁面原英文版是 Linux man-pages 專案 4.09 版的一部分。 如需瞭解這個專案的描述、彙報漏洞的相關資訊及本頁 面的最新版本, 請訪問 https://www.kernel.org/doc/man-pages/. 本頁面中文版由中文 man 手冊頁計劃提供。 翻譯人員:Boyuan Yang <073plan@gmail.com> 獲取日期:2016-12-12 翻譯日期:2016-12-16 中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh