当我编译并运行这段代码(它是一个更大的程序的一部分)时,Linux会在while循环中途完成,然后就会停止工作.
下面的代码打印time: 0然后挂起,在我暂停进程之前不做任何其他操作.为什么它会打印time: 0而不是以下的理智检查线?
while (i < 5)
{
printf("time: %d\n",elapsedTime);
printf("sanity check");
foo();
i++;
}
Run Code Online (Sandbox Code Playgroud)
sch*_*der 22
输出通常是缓冲的,只能在刷新或换行后写入.在
printf("sanity check");
Run Code Online (Sandbox Code Playgroud)
没有换行符,所以如果你在此之后无限循环运行,你将看不到它.替换为
printf("sanity check\n");
Run Code Online (Sandbox Code Playgroud)
要么
printf("sanity check");
fflush(stdout);
Run Code Online (Sandbox Code Playgroud)
你会看到它.