FIFO
FIFOは名前付きパイプとも呼ばれる。pipe(2)によってつくられるパイプは"無名"で、親子関係など限られたプロセス間通信にしか使えないが、FIFOならばそのような制約はない。さらに、FIFOはファイルと同じように扱える。
カンタンな例
mkfifo(1)を使う。
shell1
$ mkfifo fifo1 $ cat < fifo1
shell2
$ cat /tmp/testdata > fifo1
とするとshell1の標準出力に /tmp/testdata の中身が表示される。
また、作成されたfifoをlsで調べると以下のようになる。
$ ls -la fifo1 prw-r--r-- 1 kotaroito kotaroito 0 2 17 22:56 fifo1
mkfifo(2)
fifoにデータを書き出して、それを別プロセスから読み出してみる。
書き出し
読み出し
$ cat fifo1 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
となる。