in reply to open3 buffering in linux vs. os x
Not a *nix user here, so your mileage might vary, but there is a trick I use successfully to cause interactive programs to flush their buffers under Win32 that might work for you.
Most interactive programs have some kind of 'status' command with a regular and easily recognisable output format. The trick is to issue one or more of these when you've reached a point that you need to know that you're seeing all the output from the previous command or batch of commands.
A quick look at the ProFit docs shows that it has a 'comment' command. Any line entered that starts with '#' is simply echoed to stdout. Which is great, as it is easy for your read loop to simple discard any line that starts with '#'.
With a little investigation, you can even determine the size of the output buffer and simply do print $writeFH '#' x $bufferSize;, and know that whatever output precedes that will have been flushed through after you've issued it.
It's not exactly a cool solution, but it is easy to implement and try.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: open3 buffering in linux vs. os x
by Lexicon (Chaplain) on Jan 09, 2009 at 01:13 UTC | |
by BrowserUk (Patriarch) on Jan 09, 2009 at 01:33 UTC |