python sys.stdout and C++ iostreams::cout
Utpal Sarkar
doetoe at gmail.com
Thu Jan 17 10:51:42 EST 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