<br><div class="gmail_quote">On Fri, Mar 11, 2011 at 3:49 PM, Alexander Kapps <span dir="ltr"><<a href="mailto:alex.kapps@web.de">alex.kapps@web.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
On 11.03.2011 03:18, Nobody wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
On Thu, 10 Mar 2011 23:55:51 +0100, Alexander Kapps wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I think he wants to attach to another process's stdin/stdout and<br>
read/write from/to them.<br>
I don't know if this is possible but it would be a great addition for<br>
psutil.<br>
</blockquote>
<br>
It's not even a meaningful concept, let alone possible.<br>
</blockquote>
<br>
Unless I misunderstand something,<br>
</blockquote>
<br>
You do ...<br>
</blockquote>
<br>
Many thanks for the correction and lesson (to Grand Edwards too)!<br>
<br>
I still try to digest your explanations. I thought, that processes just do something like dup()'ing the file descriptors of their terminal but after some strace experiments, I think that is totally wrong.<br></blockquote>
<div>Usually, file descriptors are inherited across fork() (and maybe Windows' startprocess), as is the contents of any buffers corresponding to them - so when flushing you can get two copies of the same output, or two copies of the same input.  <br>
<br>There's no need to dup to just inherit a filedescriptor from a parent process to a child.<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

I'd like to learn more about this (how processes, their controlling terminals and the std file descriptors relate)<br></blockquote><div>I'm not sure controlling terminals are that relevant.<br><br>The standard filedescriptors are just 0, 1, and 2 for stdin, stdout and stderr.  They're pretty much like any other filedescriptors, except they tend to be open already when a program starts.  Oh, and the buffering might be different from one filedes to another, of course.<br>
 <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Do you know any links to deeper material (tried Google but what I've found is to shallow)<br></blockquote><div><br>Check this out; you can pass a filedescriptor through a unix domain socket, though I've never tried it myself in C, let alone Python:<br>
<a href="http://stackoverflow.com/questions/909064/portable-way-to-pass-file-descriptor-between-different-processes">http://stackoverflow.com/questions/909064/portable-way-to-pass-file-descriptor-between-different-processes</a><br>
<br></div></div>