パイプ (コンピュータ)
一般に数学で、f, g, h という関数があるとして h(g(f(x))) というような計算をすることを考える時、関数を関数合成の演算子 ∘ で合成した (h∘g∘f)(x) というものを考えることがあるが、パイプの演算子 | はこれに似ており ( progF < x ) | progG | progH あるいは ( progF | progG | progH ) < x となる。
パイプに関連したシグナルとして SIGPIPE がある。パイプの読み出し側が閉じられた後にパイプへの書き込みが行われると、パイプへ書き込もうとしたプロセスへ SIGPIPE を配送する。デフォルト動作では、SIGPIPE を受信したプロセスは異常終了する。パイプから読み出すプロセスがパイプを閉じ、かつパイプへ書き込むプロセスが書き込みを続けるとパイプのバッファは枯渇してしまい、後者のプロセスがブロックしてしまうため、SIGPIPE によりこれを防止している。なお、類似の機能を持つソケットにて同じ状況が発生した場合、書き込み側ではパイプと異なり、実際に書き込んだサイズをゼロとすることにより同様の状況をプロセスに伝える。また、パイプの書き込み側が先に閉じられた場合、読み出し側では End Of File に到達したのと同じ扱いとなり、パイプ独自の処理は行わない。