當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Open3.popen2用法及代碼示例


本文簡要介紹ruby語言中 Open3.popen2 的用法。

用法

popen2(*cmd, &block)

Open3.popen2 Open3.popen3 類似,隻是它不為標準錯誤流創建管道。

方塊形式:

Open3.popen2([env,] cmd... [, opts]) {|stdin, stdout, wait_thr|
  pid = wait_thr.pid # pid of the started process.
  ...
  exit_status = wait_thr.value # Process::Status object returned.
}

非阻塞形式:

stdin, stdout, wait_thr = Open3.popen2([env,] cmd... [, opts])
...
stdin.close  # stdin and stdout should be closed explicitly in this form.
stdout.close

有關可選散列參數 envopts 的信息,請參見 Process.spawn

例子:

Open3.popen2("wc -c") {|i,o,t|
  i.print "answer to life the universe and everything"
  i.close
  p o.gets #=> "42\n"
}

Open3.popen2("bc -q") {|i,o,t|
  i.puts "obase=13"
  i.puts "6 * 9"
  p o.gets #=> "42\n"
}

Open3.popen2("dc") {|i,o,t|
  i.print "42P"
  i.close
  p o.read #=> "*"
}

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Open3.popen2。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。