我在网上某处看到了下面的片段。以下程序不打印“hello-out”。我感觉的原因是因为在它真正从缓冲区刷新到控制台之前,
#include <stdio.h>
#include <unistd.h>
int main()
{
while(1)
{
fprintf(stdout,"hello-out");
fprintf(stderr,"hello-err");
sleep(1);
}
return 0;
}
我的理由对吗?如果不是,正确的原因是什么?
最佳答案
您应该将 \n
放在字符串的末尾以将其刷新,或使用 fflush
将其强制清除。
关于c - sleep 和输出刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7733236/