popen2(*cmd, &block)
Class Public methods
::popen2 is similer to ::popen3 except it doesn't make a pipe for the standard error stream.
Block form:
1 2 3 4 5 | 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. } |
Non-block form:
1 2 3 4 | stdin, stdout, wait_thr = Open3.popen2([env,] cmd... [, opts]) ... stdin.close # stdin and stdout should be closed explicitly in this form. stdout.close |
See Process.spawn for the optional hash arguments env and opts.
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 #=> "*" } |
Please login to continue.