

IO.pipeを使って、  
子プロセスの値を親プロセスに渡すことができたのですが、  
子プロセスから複数の値を親プロセスに渡したい場合は  
どのようにしたらよいのでしょうか？

[code]

    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"
    
[/code]


CC BY-SA 4.0
2018-11-01T12:45:58.920
49864
2018-11-01T12:45:58.920
12842
question
ruby
Rubyのプロセス間通信で複数の情報をやり取りしたい