In article <[EMAIL PROTECTED]>,
"Luigi" <[EMAIL PROTECTED]> wrote:
> The question is that I have a C program (by third part) that streams
> the logs into the stderr and stdout devices. I need to create an
> envelopment that captures the outputs and puts them in a file
> generating log events (for
Diez is correct, the C program is writting to stdout, you are reading
from stdout. Default bahavior in most modern Unix like systems is to
buffer std out. I stumbled on this a long time ago, so I am trying to
remember the details.
What I think is happening here, you call the child process, it do
> fin, fout = os.popen4(arg)
>
> this is executed asyncronously? And how can I intercept a fout.write()
> event?
You don't intercept anything, you read from the child process stdin, which
from your POV is a readable stream.
Diez
--
http://mail.python.org/mailman/listinfo/python-list
I use Linux.
So, if I modify my sdtout behaviour, when I execute:
fin, fout = os.popen4(arg)
this is executed asyncronously? And how can I intercept a fout.write()
event?
The question is that I have a C program (by third part) that streams
the logs into the stderr and stdout devices. I need to
What OS are you doing this on?
I had an issue similar to this and it was due to default buffering
behavior of my tty's. If I recall correctly I executed a bunch of
settty to eliminate the buffering behavior of stdout. The set the
terminal back to it's original setting when my program was done.