考虑以下代码
#include <stdio.h>
int main()
{
while(1)
{
sleep(1);
printf("X");
}
return 0;
}
输出无效,直到缓冲区溢出并随后由系统自动刷新。
为什么在这种情况下不会缓冲?:
#include <stdio.h>
int main()
{
while(1)
{
printf("X");
}
return 0;
}
sleep()函数似乎在这里有一些隐藏的效果。
我对缓冲区的概念不熟悉,因此欢迎任何有关我潜在误解的其他信息或说明。
答案 0 :(得分:4)
输出仍然是缓冲的,但缓冲区的溢出(以及冲洗)在第二个例子中经常发生,因此无法注意到它。
如果你在比今天的千兆赫PC更慢的系统上运行它,你肯定会注意到差异。