【发布时间】:2013-07-15 15:30:16
【问题描述】:
我知道这是因为 stdout 的缓冲,但是我什么时候可以在下面的程序中期望 stdout 的输出。如果我运行,我总是得到“stderr”作为输出。如果我添加 '\n' 或 fflush(stdout) 那么只有我得到两个语句。如果我不添加 '\n' 或 fflush(stdout),我不会得到“stdout”作为输出。如果我不添加 '\n' 或 fflush(stdout),我什么时候才能得到所有缓冲的“stdout”作为输出。
#include <stdio.h>
#include <unistd.h>
int main()
{
for(;;)
{
fprintf(stdout,"stdout");
fprintf(stderr,"stderr");
sleep(1);
}
return 0;
}
【问题讨论】: