From: MATSUNAGA Ichiro Date: 2007-05-26T05:13:06+09:00 Subject: [ruby-list:43567] Re: IO.popenと入出力 松永です。 At 26 May 2007 04:28:46 +0900 きむらこういち wrote on : > > IO.popen("grep -n \"bar\" -", "r+"){|io| > > io.puts("foo\nbar") > > io.close_write io.close_writeを入れる事により、こちらの思うような動作になりました。 > > また、標準エラー出力はどうやって取得するので しょうか? > > open3で。 > cygwinだから大丈夫? だめっぽいです。 #!/usr/bin/ruby require 'open3' Open3.popen3("cat -", "r+"){|stdin, stdout, stderr| stdin.puts("foo") stdin.close_write() puts(stdout.read()) puts(stderr.read()) } を実行すると、 /usr/lib/ruby/1.8/open3.rb:48:in `exec': No such file or directory - cat - (Errno::ENOENT) from /usr/lib/ruby/1.8/open3.rb:48:in `popen3' from /usr/lib/ruby/1.8/open3.rb:34:in `fork' from /usr/lib/ruby/1.8/open3.rb:34:in `popen3' from /usr/lib/ruby/1.8/open3.rb:32:in `fork' from /usr/lib/ruby/1.8/open3.rb:32:in `popen3' from ./test.rb:4 とerrorメッセージが出ます。 リファレンスにはwin32-open3を使えと書いてあるので、、後程 http://rubyforge.org/frs/?group_id=85のwin32-open3を試してみます。 ありがとうございました。 -- MATSUNAGA Ichiro e-mail: vikke@mars95.to Just remember - when you think all is lost, the future remains. -- Robert H. Goddard