• ベストアンサー

書きのパイプを「親」と呼ぶ理由

たとえば、第242章 匿名パイプ(サーバー側) http://hp.vector.co.jp/authors/VA010523/sdk3/sdk_242.htm もそうなんですが、書くだけのパイプと読むだけのパイプを作るとき、書くだけのパイプを「親」と呼んでいる人が多いようなんですが、なぜ1と2や読みパイプと書きパイプという同レベルの呼び名でなく、強弱の差がありそうな親と子を使うんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yasuch
  • ベストアンサー率41% (27/65)
回答No.2

ご紹介されているページを隅々まで読んだわけでは無いですが プロセスのことを親子と呼んでいるのであって パイプのことを親子と呼んでいるのではないと思います。 つまり、元々のプロセスを親プロセス、 この親プロセスから CreateProcess() によって新たに 起動されたプロセスが子プロセスということになります。 親プロセスから子プロセスへメッセージを送るためのパイプ では、長すぎるので「親→子のパイプ」などと表現している と思われます。

muenos
質問者

お礼

だいたい分かったような気になりました。 ありがとうございました。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> 書くだけのパイプを「親」と呼んでいる のではなくて、 ・新たなプロセスを起動した方を「親」 ・起動された方を「子」 ――と呼びます(※)。 なんで、パイプの読み書き方向とは無関係なんですが、まあ文脈的に省略されて「親のパイプ」とか言う事は多々あるかと。 ※UNIX系OSは必ずプロセス生成についての親子関係が存在しますが、Windows系は親子関係を築かないプロセス生成もあります。

muenos
質問者

補足

まだ親子が分かりません。 パイプでプロセス間通信の基本 http://www.fides.dti.ne.jp/~tokai/vc/vcchips1.html でも親子が書いてありますが、ここでは新たなプロセスを起動した方というのは自分の実行ファイルが親で、AllocConsole();によってMS-DOSプロンプトみたいなのが子ですか? パイプ自体には親も子も無いように思うんですが、パイプを使うのは今回が初めてで、この例ように同じプロセスでDuplicateHandle()するものでは親子のイメージが難しいのでしょうか?

関連するQ&A