Hi,
I'm stuck with this problem. I searched the docs and this site, but most of them deal with non-buffered output.
What I'm looking for is a way to read the output from a command which initially shows some output, and then blocks due to a network issue
This is the command when run on a Linux shell:
$ whois x.x.x.x [Querying whois.server.net]
The above command then hangs, most probably as that particular server is not available. Whats important is that this command does indicate which server it is trying.
I'm running the above command in a Perl script, and trying to capture the initial 2-3 lines, irrespective of whether the command blocks or not.
None of the following work:
open FH, "whois x.x.x.x 2>&1 |"; my $ofh = select FH; $|=1; while (<FH>) { print; } close FH;
open FH, "whois x.x.x.x 2>&1 |"; sysread FH, $output, 4192; close FH;
Any help would be much appreciated. Thanks!
In reply to Non-buffered read from program by arc_of_descent
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |