我知道这是因为 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;
}