python sys.stdout and C++ iostreams::cout

Utpal Sarkar doetoe at gmail.com
Thu Jan 17 16:51:42 CET 2013


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




More information about the Python-list mailing list