Provided by: manpages-zh_1.5.2-1.1_all bug

NAME

       fifo - 先進先出的特殊檔案, 又名管道

描述 (DESCRIPTION)

       一個  FIFO  特殊 檔案 (又名 管道) 同 管道線 相似, 但是 它是 作為 檔案 系統 的 一部分 訪問的. 可以 有 多個
       進程 打開它 以供 讀寫. 當 進程 通過 FIFO 交換 數據 的時候, 核心 在內部 傳送 所有 數據 而 不會  把它  寫入
       檔案  系統,  也就是說 FIFO 特殊 檔案 在 檔案 系統 中 沒有 任何 內容, 檔案 系統 項 只是 作為  進程 可以 用
       檔案 系統 中的 一個 名字 來 訪問 管道 的 一個 參照點.

       核心 會 為 至少 有 一個 進程 打開 了的 FIFO 特殊 檔案 維護 並且 也只 維護 一個 管道 對象.  在  數據  傳給
       FIFO 之前, FIFO 的 兩端 (讀 和 寫) 必須 同時 打開.  一般 來說 打開 FIFO 會 阻塞 直至 另一端 也 打開.

       一個  進程  可以 以 非阻塞 模式 打開 一個 FIFO. 這種 情況下, 即使 寫端 沒有 打開, 打開 讀端 還是 會 成功,
       但是, 如果 讀端 沒有 打開, 打開 寫端 會 失敗, 並且 得到 一個 ENXIO (設備 或 地址 不存在).

       在 Linux 下, 不管 是 阻塞 還是 非阻塞 模式, 打開 一個 FIFO 用作 讀 和 寫 都會 成功. POSIX 關於 這種  情況
       沒有 定義. 這個 可以 用來 在 讀端 沒有 打開 的 情況 下 打開 寫端. 一個 進程 在 同時 用 FIFO 的 兩端 來 和
       自己 通信 的 時候 要 特別 注意 以防 死鎖.

注意 (NOTES)

       當 一個 進程 企圖 向 讀端 沒有 打開 的 FIFO 寫 數據 的 時候, 進程 會 收到 一個 SIGPIPE 信號. FIFO 特殊 檔
       案 可以 用 mkfifo(3) 來 創建 並且 ls -l 會 給它 一個 特殊 的 標記.

參見 (SEE ALSO)

       mkfifo(3), mkfifo(1), pipe(2), socketpair(2), open(2), signal(2), sigaction(2)

[中文版維護人]

       唐友 <tony_ty@263.net>

[中文版最新更新]

       2001/10/9

[中國Linux論壇man手冊頁翻譯計劃]

       http://cmpp.linuxforum.net

Linux Man Page                                     20 Jun 1999                                           FIFO(4)