From: Hal Fulton Date: 2004-04-28T06:06:30+09:00 Subject: popen issues Here's something I've never figured out. Suppose I want real two-way communication with a process via popen. This seems doable. But apparently the read hangs until I do a close_write; and if I do that, I can't write again. A flush doesn't work. Here's what I was thinking (simplified): io = IO.popen("/bin/bash","r+") do |f| f.puts "ls" puts f.readlines f.puts "date" puts f.readlines end I even tried this (following) abomination, to no avail: io = IO.popen("/bin/bash","r+") do |f| writer = f.dup f.puts "ls\n" f.close_write puts f.readlines w = writer.dup w.puts "date\n" w.close_write puts f.readlines end Can someone advise? Hal