Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
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/ に書かれている。