Rubyのプロセス間通信で複数の情報をやり取りしたい
IO.pipeを使って、
子プロセスの値を親プロセスに渡すことができたのですが、
子プロセスから複数の値を親プロセスに渡したい場合は
どのようにしたらよいのでしょうか?
require 'thread'
require 'open3'
require 'time'
require 'find'
# プロセス間通信用
read, write = IO.pipe
# プロセス処理
pid = Process.fork do
# 子プロセスで読み出さないのでクローズ
read.close
# 外部コマンド実施
stdin, stdout, stderr, stdth = Open3.popen3(コマンド)
# 外部コマンドの終了待ち
commth.join
# 外部コマンド結果を書込み
write.puts stdout.read
write.close
end
# プロセス処理終了待ち
Process.waitpid pid
# 書き込まないのでクローズ
write.close
# 子プロセスで書き込んだ値を取得
result = read.gets
read.close
puts "it takes #{result}"
puts "end"