考虑以下代码
#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()函数在这里似乎有一些隐藏的效果。
我是缓冲区概念的新手,因此欢迎任何关于我潜在误解的额外信息或注释。
输出仍然是缓冲的,但缓冲区溢出(从而导致刷新)在第二个例子中经常发生,以至于不可能注意到
如果你在一个比现在的千兆赫兹电脑慢得多的系统上运行这个,你肯定会注意到它的不同。