Capture file descriptors while running an external program

jfigueiras at sapo.pt jfigueiras at sapo.pt
Sat Nov 25 08:38:33 EST 2006


>I have a problem with the module subprocess!
>The problem is that the external software that I am running under
>subprocess.Popen opens stdin, stdout, stderr, and other file descriptors to
>write and read in the hard drive.

As many other programs...

>I know how to capture stdin, stdout and stderr, what I cannot do is to capture
>the other file-descriptors. Is there any way to wrap those non-standard file
>descriptors and make them write and read from a specific object that I define?
>I know that I can use tmp files to do that, but i would like something running
>without tmp files.

I'm not sure what you mean by "non-standard file descriptors". The
other program is free to open, read, write, etc any file he wants -
are you trying to trap any file operation it may want to do?
You *could* do such things -google for "code injection" and "API
hooking"- but I doubt it's what you really want.

--
Gabriel Genellina
Softlab SRL

Hi Gabriel!

When I wrote "non-standard file descriptors", I meant the file descriptior which
are pointed to files in the hardrive.
What I would like to do is not to trap any file operation, but instead intercept
that file operation, i.e. I would like the output of the external program to
don't be writen in a file (its normal behavior), but instead be sent to any
variable in my program.
I know the name of the file where the external program will write the output. I
pass its name along the command line.

Joao Figueiras

___________________________________________________________________

O SAPO já está livre de vírus com a Panda Software, fique você também!
Clique em: http://antivirus.sapo.pt




More information about the Python-list mailing list