runtime/io_popen_parens.rb
tests/_examples/runtime/io_popen_parens.rb in the metorex repository.
io = IO.popen("echo hello")
print(io.read)
puts(io.read.empty?)
puts(io.pid > 0)
puts(io.closed?)
io.close
puts(io.closed?)
status = Process.last_status
puts(status.exited?)
puts(status.exitstatus)
puts(status.signaled?)
puts(status.termsig.inspect)
puts(status.success?)
puts(status.to_i)
puts(IO.popen("printf one") { |child| child.read })
merged = IO.popen("printf err 1>&2", err: [:child, :out]) { |child| child.read }
puts(merged)
IO.popen("exit 3") { |child| child.read }
puts(Process.last_status.exitstatus)
puts(Process.last_status.success?)
Output:
hello
true
true
false
true
true
0
false
nil
true
0
one
err
3
false