カーネルは、少なくとも一つのプロセスによってオープンされている FIFO 特殊ファイルに関して、 1 つの FIFO 特殊ファイルにつき 1 つのパイプオブジェクトを管理する。データを渡す前に、 FIFO の両端 (書き込み側と読み出し側) がオープンされていなければならない。通常、 FIFO をオープンしようとした場合、その反対側がオープンされるまで停止 (block) される。
プロセスは FIFO を非停止 (nonblocking) モードでオープンすることもできる。この場合、読み込み専用でオープンしようとした場合には、書き込み側を誰もオープンしていなくても成功する。書き込み専用でオープンしようとした場合には、反対側がすでにオープンされていない限り、 ENXIO (そのようなデバイスまたはアドレスは存在しない) というエラーで失敗する。
Linux では、 FIFO を読み書き両用でオープンした場合、 停止、非停止のどちらのモードでも成功する。 POSIX では、この場合の動作は定義されていない。この動作は、読み込み側がいない時に書き込み用に FIFO をオープンするために使用できる。自分自身と通信するために FIFO の両端を使用するプロセスでは、デッドロックを避けるために細心の注意を払う必要がある。
プロセスが、反対の読み込み側がオープンされていない FIFO に書き込もうとした場合、そのプロセスに SIGPIPE シグナルが送られる。
FIFO 特殊ファイルは mkfifo(3) で作成することができ、 ls -l ではファイル種別 'p' で表示される。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]