Redirecting STDOUT using C calls.
Tom Gaudasinski
amicus at adam.com.au
Sun Dec 30 17:04:20 EST 2007
Christian Heimes wrote:
> Tom Gaudasinski wrote:
>
>> Greetings,
>> I'm trying to redirect python's stdout to another location. The
>> reason for this is that I'm embedding python in an application. Now,
>> originally my code was developed for Linux and that did not require
>> redirection due to the fact that every X11 application can have an
>> STDOUT associated with it. I then proceeded to take interest in making
>> my code portable and looked at compiling it on windows, however Win32
>> GUI applications are not given an STDOUT by default. One has to first
>> AllocConsole() and then reassign the handles using magic tokens
>> "CON(IN|OUT)$" such as freopen("CONOUT$", "w", stdout). I like to keep
>> code clean and would like to stick to the C API as much as possible.
>>
>
> Why don't you use the appropriate C api to redirect the standard streams?
>
> freopen("filename", "w", stdout);
>
> See
> http://www.gnu.org/software/libc/manual/html_mono/libc.html#Standard-Streams
>
> Christian
>
>
That is what I will be using in my final solution, however it makes no
difference for exemplary purposes in the samplecode i supplied. Using
freopen() still causes an invalid access exception exception in Windows.
More information about the Python-list
mailing list