#include <stdio.h>
#include <unistd.h>
int main (){
while(1){
fprintf (stdout,"hello-out");
fprintf (stderr,"hello-err");
sleep (1);
}
return 0;
}
まあ、私はこれが単純に表示され、hello-out と hello-err が 1 秒の休憩を取り、それらのリテラルを再度出力すると思っていましたが、いいえ、何か奇妙なことが起こっています。hello-err を出力してから 1 秒の休憩を取り、同じことを行いますまた。なぜ?
しかし、待ってください。その後、それらを別々の行に印刷することにしましたが、今では機能しました。
fprintf (stdout,"hello-out\n");
fprintf (stderr,"hello-err\n");
- - - - - と同じ - - - - - -
fprintf (stdout,"hello-out\n");
fprintf (stderr,"hello-err");
では、ここでの '\n' の重要性は何ですか? これはフラッシングに関係していますか?「\ n」がフラッシュに使用されることを読んだためです。
また、両方のリテラルを標準出力に出力しても、出力は生成されません:(
fprintf (stdout,"hello-out");
fprintf (stdout,"hello-err");
もう一度なぜ?