パイプ 【pipe】
概要
パイプ(pipe)とは、プログラム間でデータを受け渡すプロセス間通信(IPC)の手法の一つで、あるプログラムの出力を別のプログラムの入力として渡す仕組み。UNIX系OSで標準的な手法として広まり、Windowsなど他のOSにも似た機能が普及した。匿名パイプ (無名パイプ/名前無しパイプ)
UNIX系OSのシェルなどではプログラムを実行する際に「|」(縦棒)を隔てて別のプログラムを指定することにより、前のプログラムの標準出力を次のプログラムの標準入力に流し込む「匿名パイプ」(anonymous pipe/無名パイプ/名前無しパイプ)を利用することができる。
簡単な記法でプログラムを連結でき大変便利であるため、UNIX系OSでは伝統的にこの仕組みを利用して、単機能の単純なコマンド(フィルタと呼ばれる)をパイプで連結して連続的に実行することにより複雑な処理を行うという手法がよく用いられる。
名前付きパイプ
一方、実行の前後関係を明示的に指定していない場合でも、プログラム側で識別名を指定して「名前付きパイプ」(named pipe)を作成し、FIFO(先入れ先出し)方式で他のプログラムへデータを連続的に渡すことができる。
パイプの操作はファイルの入出力と同じ手順で行えるようになっており、特殊なパスを指定してファイルを開き、データの書き出しや読み込みを行う感覚で利用することができる。一つのパイプを三つ以上のプログラムが同時にアクセスすることもでき、入力側と出力側が限定されない双方向の通信ができる。
(2018.8.21更新)