New submission from Mitchell Stokes <moguri...@gmail.com>:

I have Python embedded in a C/C++ program, and I'm trying to redirect stdout to 
a text file. Since I'm trying to get rid of the console, I want C and Python 
stdout going to the text file (so, not sys.stdout = open('log.txt', 'w')). To 
this end, I used freopen() like so:

freopen("log.txt", "w", stdout);

to redirect stdout in C. However, when using Python 3.1, I get the following 
error:

Fatal Python error: Py_Initialize: can't initialize sys standard streams
OSError: [Errno 9] Bad file descriptor

followed by a crash (Runtime Error). I think this is somewhat related to this 
bug: http://bugs.python.org/issue1415

I've attached a sample program that illustrates the problem. I compiled it with:

gcc -o py_main.exe py_main.c -IC:\Python31\include -LC:\Python31\libs -lpython31

I had someone test the sample program on Linux, and it worked fine there, so I 
think it's a Windows issue.

----------
components: Windows
files: py_main.c
messages: 118502
nosy: Mitchell.Stokes
priority: normal
severity: normal
status: open
title: Py_Initialize crashes when stdout has been redirected with freopen
type: crash
versions: Python 3.1
Added file: http://bugs.python.org/file19212/py_main.c

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue10080>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to