1

2行目をコメントすると「Hello」が9回印刷されますが、1行目にコメントすると「Hello」が9回以上出力されます。私の質問は、これにおける'\ n'の役割は何ですか?

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int tmp[10], i, n=0;

    for(i=0;i<9;i++)
    {
        tmp[i]=fork();
        if(tmp[i]>0)
            break;
        else
        {
            printf("Hello\n");  //      ---- Line 1
            printf("Hello ");   //      ---- Line 2
        }
    }
}
4

2 に答える 2

2

\n標準の出力バッファもフラッシュします。存在しない場合は、以前にデータを入力した可能性があります。フラッシュとは、\nが処理されるとすぐにprintfを画面に強制的に印刷することも意味します。それ以外の場合はバッファリングされた出力であり、OSが出力をバッファリングする期間と、実際に印刷することを正確に選択する時期を予測することはできません。

于 2012-10-31T06:14:47.133 に答える
2

バッファフラッシュが発生しないという犠牲者になる可能性があります。文字列の最後にある「\n」は、出力バッファをフラッシュします。出力バッファがフラッシュされていない場合は、前のprintf呼び出しからも出力が得られる可能性があります。したがって、バッファを確実にフラッシュするために、印刷文字列の最後に「\n」を使用することをお勧めします。あなたはこの質問を見ることができます。

于 2012-10-31T06:19:29.987 に答える