c-为什么只有当我使用sleep()函数时,输出流才会得到缓冲

  • 本文关键字:函数 输出流 缓冲 sleep sleep
  • 更新时间 :
  • 英文 :


考虑以下代码

#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()函数在这里似乎有一些隐藏的效果。

我是缓冲区概念的新手,因此欢迎任何关于我潜在误解的额外信息或注释。

输出仍然是缓冲的,但缓冲区溢出(从而导致刷新)在第二个例子中经常发生,以至于不可能注意到

如果你在一个比现在的千兆赫兹电脑慢得多的系统上运行这个,你肯定会注意到它的不同。

最新更新