Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all
名前
fifo - 先入先出特殊ファイル、名前付きパイプ
説明
FIFO 特殊ファイル(名前付きパイプ)はパイプに似ているが、 ファイルシステムの一部に関連付けら れている点が異っている。 複数のプロセスが読み込みや書き込みのためにオープンすること ができ る。プロセスが FIFO を通しデータを交換する場合、 実際にそれをファイルシステムには書き込ま ず、カーネルは全ての データを内部的に渡す。このように、FIFO 特殊ファイルはファイルシステム 上には内容を持たないので、ファイルシステムのエントリーは プロセスがそのファイルシステム上 の名前を使用してそのパイプに アクセスできるように参照ポイントを提供しているに過ぎない。 カーネルは、少なくとも一つのプロセスによってオープンされている FIFO 特殊ファイルについ て、それぞれ一つのパイプのみを管理している。 データが渡される前にその FIFO の両端(書き込み と読み出し)がオープン されていなければならない。通常、FIFO をオープンすると、 その反対側が オープンされるまで停止(block)させられる。 プロセスは FIFO を非停止(nonblocking)モードでオープンすることもできる。 この場合、読み込み 専用でオープンした場合には書き込み側を誰もオープン していなくても成功する。書き込み専用で オープンした場合は反対側が既に オープンされていなければ ENXIO (そのようなデバイスまたはア ドレスは存在しない) というエラーで失敗する。 Linux では、FIFO を読み込みと書き込み両用にオープンした場合、 停止、非停止のどちらのモード でも成功する。POSIX ではこの場合の 動作は定義されていない。これは読み込み側がいない時に書 き込み用に オープンするために使用することができる。自分自身と通信するために 両端を使用する プロセスはデッドロックを避けるために非常に注意深く なければならない。
注意
プロセスが、反対の読み込み側がオープンされていない 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 プロジェクトのリリース 3.79 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。