Thanks a lot Chris and Nobody! I'll have a look at dup2 for a start.

> > I was assuming that sys.stdout would be referencing the same physical 
> > stream as iostreams::cout running in the same process, but this doesn't 
> > seem to be the case.
> 
> 
> 
> That's more-or-less true, but there will likely be separate buffering,
> 
> so even without redirection you might see some oddities. But the
> 
> problem with your code is that you're not actually redirecting stdout
> 
> in any way; you're catching, at a fairly high level, everything that
> 
> Python would otherwise have sent there.
> 
> 
> 
> Is there any way that you can get the C++ code to offer a way to
> 
> redirect its output? Otherwise, you're going to have to fiddle around
> 
> with the usual mess of I/O redirection (with dup2), and you can only
> 
> send it to what the OS sees as a file (so, no StringIO buffer). So to
> 
> achieve your goal, you may need either a temporary physical file, or
> 
> some sort of pipe (and worry about reading from it before it fills up,
> 
> etc, etc). There may be alternatives, but in any case, the easiest way
> 
> is going to be with some assistance from the C++ function.
> 
> 
> 
> ChrisA

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to