当我编译并运行这段代码(它是一个更大的程序的一部分)时,Linux 已经完成了一半while
循环,然后就停止工作。
下面的代码打印time: 0
然后挂起,不执行任何其他操作,直到我暂停该进程。到底为什么它会打印time: 0
但不是下面的健全性检查行?
while (i < 5)
{
printf("time: %d\n",elapsedTime);
printf("sanity check");
foo();
i++;
}
输出通常被缓冲并且仅在刷新或换行之后写入。在
printf("sanity check");
没有换行符,因此如果在此之后无限循环运行,您将看不到它。
将其替换为
printf("sanity check\n");
or
printf("sanity check");
fflush(stdout);
你会看到的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)