ruby18 では、フル コントロールのサブプロセスを取得するために次のことを行うことがありました。
stdin, @stdin= IO.pipe
@stdout, stdout= IO.pipe
@stderr, stderr= IO.pipe
@pid= fork do
@stdin.close
STDIN.close
stdin.dup
@stdout.close
STDOUT.close
stdout.dup
@stderr.close
STDERR.close
stderr.dup
exec(...)
end
これは ruby19 では機能しません。ruby19 では、STDIN、STDOUT、STDERR の close メソッドは、基になるファイル記述子を閉じません。ruby19でこれを行うにはどうすればよいですか。