うがー

stdinをそのまま子プロセスのstdinに与えて、子プロセスのstdoutは適当にpipeで読み出せるようにしてあるとする。

親        |         子
stdin ====|===> stdin
pipe  <===|==== stdout

標準入力からCtrl-Dを送ると、子プロセスはEOFを読み込んでいろいろ処理した後、exit(0)で終了する。この時点で子のstdoutはfcloseされていると思う。

つまり、プロセスが終了した後でpipeからinput_lineとかしたときには、End_Of_Fileが欲しいのだが、なぜかブロックしてしまう。End_Of_Fileしてくれるもんだと思ってたんだが。