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