🔥
名前付きパイプ(named pipe)
比較のため、まずは通常のパイプから説明します。
通常のパイプ(匿名パイプ/無名パイプ/名前無しパイプ)
- ファイル記述子を利用することでプロセス間でデータを受け渡す
- そのため、グループ化されていないプロセス間の場合だと通信が難しい
- 理由はそれぞれのプロセスが独自にファイル記述子を持っているため
- そのため、グループ化されていないプロセス間の場合だと通信が難しい
- 関連性のあるプロセス間での通信に用いられる
名前付きパイプ(named pipe)
- そこでファイル記述子の代わりに、パイプにパス名を割り当てるプロセス間通信の方式のことを「名前付きパイプ」(named pipe)と呼ぶ
- (同一システム上の)関連性のないプロセス間でも通信することができる
流れ
- ファイル名を引数にとる
- 1の名前の特殊ファイルをファイルシステム内に作成※
→
2のファイル名がパイプ名となる。
プロセスが2のファイル名を用いてパイプから読み書きを行う(=プロセス間通信)
※ファイルシステムに保存はせず、メモリに保存する。
=名前付きパイプは容量に限りがあるため大量データの伝送には不向き
参考
Discussion