これは 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;
}