1

私はAC関数を作成し、テストと学習の目的でMacアプリで使用しています。これを使用してテキストをファイルに印刷しようとすると、次のようになります。

FILE *f = fopen("text.txt", "w+");
fflush(f);
if (f==NULL) {
    f = fopen("text.txt", "w+");
    saveToFile(text);
    printf("null\n");
    return 0;
}
else{
    int i = fprintf(f, "%s", text);
    if (i>0) {
        return  1;
    }
    else{
        return 0;
    }
}
fclose(f);

それをファイルに出力しますが、アプリを終了した後でのみです。なぜこれが起こっているのか誰もが知っていますか?

4

1 に答える 1

7

returnプログラムがに到達する前に、何があっても電話をかけていますfclose。そのため、プログラムはファイルが閉じられるまでファイルへの書き込みを保留します(バッファリングのため)。プログラムを終了すると、ファイルが閉じられます。

于 2013-03-08T01:19:04.397 に答える