我知道这是由于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;
}