By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,190 Members | 833 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,190 IT Pros & Developers. It's quick & easy.

Capture file descriptors while running an external program

P: n/a
>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

Nov 25 '06 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.