Ruby初心者スレッドPart8
■ このスレッドは過去ログ倉庫に格納されています
0239238
2006/10/14(土) 23:38:44■popen.rb
io = IO.popen './test.exe', 'r+'
#io = IO.popen 'php test.php', 'r+'
#io = IO.popen 'ruby test.rb', 'r+'
while gets
io.write $_
print io.gets
end
io.close
■test.rb (標準入力から受け取り、大文字に変えて標準出力へ)
while gets
print $_.upcase
end
■test.php (同じことをしていますが、PHPの場合だけうまくいきます)
<?php
while (! feof(STDIN)) {
echo strtoupper(fgets(STDIN));
}
■test.cpp
ちょっと長くなるので省略しますが、cin.getlineやfgetsで受け取り、coutやprintfで返すと問題が再現します。
環境はWinXP、cl/14.00(g++やbccでも同じでした)、ruby/1.8.4、php/5.1.4です。
とにかくC++で作った実行ファイルをrubyからpopenして、標準入出力のフィルタリングのようなことをしたいので、どうか宜しくお願いします。
■ このスレッドは過去ログ倉庫に格納されています