きくたにです。

またまたサブプロセスとの通信なのです。

----- ipc1.rb -----
i = $stdin.read(4)
i.each_byte {|byte|
  printf($stderr, "ipc1.rb: int byte = %x\n", byte)
}
$stdout.write("OK")
s = $stdin.read(4)
$stdout.write("OK")
printf($stderr, "ipc1.rb: str = %s\n", s)
-------------------
という子を
----- ipc-test1.rb -----
f = open("|./ipc1.rb", "r+")
i = 0x12345678;
f.write([i].pack("i"))
printf($stderr, f.read(2), "\n")
f.write("ruby")
printf($stderr, f.read(2), "\n")
------------------------
の親で起動してやりとりしたいのですが、

% ruby ipc-test1.rb
ipc1.rb: int byte = 78
ipc1.rb: int byte = 56
ipc1.rb: int byte = 34
ipc1.rb: int byte = 12

で終ってしまうです。子からの"OK"を親が受けとってくれない。
ruby - version 1.0-971021 (i586-linux)

質問その2:
ipc-test1.rb のように双方向のパイプ(?)を作るのはPythonではできない
そうですが、Cで書くにはどうすればいいのでしょうか?

-- 
人生を背負い投げ

菊谷 誠(Kikutani Makoto)  kikutani / eis.or.jp kikutani / jdc.ericsson.se
hgf03701 / niftyserve.or.jp    http://www.eis.or.jp/muse/kikutani/