[Pdx-pm] Reading process output fails prematurely?

Scott Garman sgarman at zenlinux.com
Thu Mar 5 10:00:24 PST 2009


Michael G Schwern wrote:
>> open(EVENTS, "| /usr/local/sbin/udevmonitor");
> 
> That means EVENTS is piping input into udevmonitor.  You want to read output.
>  You also want to make sure it open succeeded. 

Aha, so all I needed was a slap with a clue bat. :) Thank you for your
response, and also for the lexical filehandle example.

> Are you sure you saw "I see:"?  Because there's no way it should have worked
> as presented above, but you might have seen just udevmonitor's output.  Do you
> have warnings on?

Right again - I was only seeing output from the program. I just *wanted*
to believe it was almost working the way I thought it should.

I have now turned warnings on and will keep them on for the remaining
development of the script.

A second quick question, if I haven't burned up too much karma: the
script works properly now, except that it buffers many lines (50+) from
udevmonitor before I see them on the screen. Setting $| to 1 was no
help, and from the documentation sounds like it wasn't quite what I
wanted anyway (autoflush forces buffer flushes after writes to the
currently selected output handle, and I'm guessing that input buffering
is what's causing me trouble).

Thanks,

Scott

-- 
Scott Garman
sgarman at zenlinux dot com


More information about the Pdx-pm-list mailing list