【发布时间】:2021-04-13 14:32:07
【问题描述】:
请看代码。
#include "stdio.h"
#include "stdlib.h"
int main() {
printf("Hello World");
system("echo \"Hello c\"");
}
运行结果:
Hello c
Hello World
为什么似乎 system() 在 printf() 之前被调用?
以上测试结果是在manjaro系统上运行的,但是在windows系统上不存在这种现象?
【问题讨论】:
-
可能正在缓冲,您可以在
printf()之后尝试fflush(stdout);调用。 -
将
\n添加到您的printf中,看看它是否正在改变。这是因为printf的输出可能在程序终止时被行缓冲和刷新。而system正在生成一个单独的进程,它在主程序之前终止。 -
@aszswaz 没有任何答案回答您的问题吗?如果是这样,请考虑accepting 其中之一。
标签: c