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