33
Printing by msvcrt: Hello World!
上面代码的结果:
render() {
errorcode = this.props.errorcode;
if (this.props.errorcode) {
return <ErrorComponent...>
}
clearErrors() {
errorcode = null;
}
为什么首先打印字符串的长度,而不是字符串本身?
答案 0 :(得分:1)
您需要在输出msvcr.fflush(None)
之后调用libc.printf()
:
why does printf() from ctypes display in console output after subsequent print() statements
答案 1 :(得分:0)
您正在使用两个独立的C运行时库实例。 msvcrt.dll
以及Python链接的任何版本。我的Python 2.7版本使用msvcr90.dll
,它来自Visual Studio 2008。
这意味着缓冲的stdout有两个独立的实例,在你的情况下,Python的缓冲I / O在另一个实例之前刷新。我无法重现你的脚本输出。
答案 2 :(得分:-1)
你已经启动了两个独立的执行线程:一个在Python中,一个在C中(我过度简化)。 Python首先完成。
获得此效果的另一种方法是在使用print语句执行一些非常简单(快速)的代码之后,在Python中生成堆栈跟踪(执行错误)。堆栈跟踪可以与打印输出交错。