本文简要介绍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
有关可选散列参数 env
和 opts
的信息,请参见 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 Open3.popen2e用法及代码示例
- Ruby Open3.popen3用法及代码示例
- Ruby Open3.pipeline用法及代码示例
- Ruby Open3.pipeline_rw用法及代码示例
- Ruby Open3.pipeline_w用法及代码示例
- Ruby Open3.pipeline_r用法及代码示例
- Ruby Open3.pipeline_start用法及代码示例
- Ruby Open3.capture3用法及代码示例
- Ruby Open3.capture2用法及代码示例
- Ruby Open3.capture2e用法及代码示例
- Ruby OpenStruct.ostruct[name] =用法及代码示例
- Ruby OpenSSL.fips_mode =用法及代码示例
- Ruby OpenSSL模块用法及代码示例
- Ruby OpenRead.open用法及代码示例
- Ruby OpenSSL.print_mem_leaks用法及代码示例
- Ruby OpenURI模块用法及代码示例
- Ruby OpenStruct类用法及代码示例
- Ruby OpenSSL.Digest用法及代码示例
- Ruby OpenStruct.==用法及代码示例
- Ruby OpenStruct.each_pair用法及代码示例
- Ruby OpenStruct.delete_field用法及代码示例
- Ruby OpenStruct.dig用法及代码示例
- Ruby OpenStruct.new用法及代码示例
- Ruby OpenStruct.ostruct[name]用法及代码示例
- Ruby Option.level用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Open3.popen2。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。