1
pipe_in, pipe_out = IO.pipe
fork do
# child 1
pipe_in.close
STDOUT.reopen pipe_out
STDERR.reopen pipe_out
puts "Hello World"
pipe_out.close
end
fork do
# child 2
pipe_out.close
STDIN.reopen pipe_in
while line = gets
puts 'child2:' + line
end
pipe_in.close
end
Process.wait
Process.wait
get
總會提高一個錯誤,說「得到:是目錄」,這沒有任何意義了我。如果我將gets
更改爲pipe_in.gets
它可以工作。我想知道的是,爲什麼STDIN.reopen pipe_in
和gets
不起作用?
該代碼的作品除了幾件事被遺忘。它看起來是耙子的問題,http://stackoverflow.com/q/8212799/398640 – NebulaFox