我编写了一个简单的 C 模块,它使用 printf 打印到标准输出。
// sample.c
func_print()
{
printf("Hello World!\n");
}
后来,我围绕它做了一个包装器,SWIG
这样我也可以func_print
在我的 python 程序中使用。在这个程序中,我已将标准输出重定向到一个 textctrl 小部件。正如预期的那样,我使用print
打印的任何内容都可以在 textctrl 小部件中正确打印。
# sample.py
...
sys.stdout = textctrl # textctrl is a TextCtrl widget (wxPython).
print 'Hello from Python!' # prints in the textctrl widget, as expected.
但是,当我调用 C 函数func_print()
(来自 sample.py)时,它会打印到终端而不是 textctrl 小部件。
func_print() # [Problem] prints to the terminal window, instead of the textctrl widget.
不知何故,C 模块中的 for 函数似乎stdout
没有按预期重定向。请帮我解决这个问题。谢谢你。