Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all bug

名前

       fifo - FIFO 特殊ファイル、名前付きパイプ

説明

       FIFO 特殊ファイル (名前付きパイプ) はパイプに似ているが、 FIFO はファイルシステムの一部に関連付けられてい
       る点が異なる。複数のプロセスが読み込みや書き込みのために FIFO をオープンすることができる。プロセスが FIFO
       を通してデータを交換する場合、カーネルは、データを実際にはファイルシステムに書き込まず、すべてのデータを
       内部的に渡す。このように、 FIFO  特殊ファイルはファイルシステム上には内容を持たない。ファイルシステムのエ
       ントリーは、プロセスがファイルシステム上の名前を使用してそのパイプにアクセスできるように参照ポイントを提
       供しているだけである。

       カーネルは、少なくとも一つのプロセスによってオープンされている FIFO 特殊ファイルに関して、 1 つの FIFO 特
       殊ファイルにつき 1 つのパイプオブジェクトを管理する。データを渡す前に、 FIFO の両端 (書き込み側と読み出し
       側) がオープンされていなければならない。通常、 FIFO  をオープンしようとした場合、その反対側がオープンされ
       るまで停止 (block) される。

       プロセスは FIFO を非停止 (nonblocking) モードでオープンすることもできる。この場合、読み込み専用でオープン
       しようとした場合には、書き込み側を誰もオープンしていなくても成功する。書き込み専用でオープンしようとした
       場合には、反対側がすでにオープンされていない限り、  ENXIO  (そのようなデバイスまたはアドレスは存在しない)
       というエラーで失敗する。

       Linux では、 FIFO を読み書き両用でオープンした場合、 停止、非停止のどちらのモードでも成功する。 POSIX  で
       は、この場合の動作は定義されていない。この動作は、読み込み側がいない時に書き込み用に  FIFO をオープンする
       ために使用できる。自分自身と通信するために FIFO  の両端を使用するプロセスでは、デッドロックを避けるために
       細心の注意を払う必要がある。

注意

       FIFO における入出力の動作の詳細については、 pipe(7) を参照のこと。

       プロセスが、反対の読み込み側がオープンされていない FIFO に書き込もうとした場合、そのプロセスに SIGPIPE シ
       グナルが送られる。

       FIFO 特殊ファイルは mkfifo(3)  で作成することができ、 ls -l ではファイル種別 'p' で表示される。

関連項目

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

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 5.10  の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。