Cライブラリ関数 -fflush()

C標準ライブラリ - <stdio.h>

説明

Cライブラリ関数int fflush(FILE *stream)出力バッファをフラッシュするために使用されます。

fflush() は C 標準ライブラリの関数で、バッファ内のデータを即座にストリームに関連付けられたファイルまたはデバイスに書き込みます。

入力ストリームに対しては、その動作は未定義であり、入力ストリーム上でこの関数を呼び出すことは避けるべきです。

宣言

以下は fflush() 関数の宣言です。

int fflush(FILE *stream)

パラメータ

  • stream-- FILE 型へのポインタで、バッファをフラッシュする必要がある対象ストリームを表します。FILE は構造体で、開かれたファイルストリームを表します。

    • もしstreamためにNULLの場合、すべての出力ストリームのバッファがフラッシュされます。
    • もしstreamがファイルポインタの場合、そのファイルストリームの出力バッファがフラッシュされます。

戻り値

  • バッファのフラッシュに成功すると、fflush()0 を返します。

  • エラーが発生した場合は、EOFを返し、エラーインジケータを設定します(ferror)。

例

以下の例は、fflush() 関数の使用方法を示しています。

例

#include <stdio.h> int main() { FILE *fp; char *filename = "example.txt"; char *data = "Hello, World!"; // 書き込み用にファイルを開く fp = fopen(filename, "w"); if (fp == NULL) { printf("ファイル %s を開けません\n", filename); return 1; } // ファイルにデータを書き込む fprintf(fp, "%s", data); // バッファをフラッシュし、データがファイルに書き込まれることを確認する if (fflush(fp) == 0) { printf("データがファイルに正常に書き込まれました。\n"); } else { printf("バッファのフラッシュ中にエラーが発生しました。\n"); } // ファイルを閉じる fclose(fp); return 0; }

コードの説明:

  • ファイルを開く: 使用fopen()という名前のファイルを開くexample.txtファイルを書き込み用にします。

  • データを書き込む: 使用fprintf()文字列を"Hello, World!"ファイルに書き込みます。

  • バッファをフラッシュする: 呼び出しfflush(fp)データがバッファに残らず、すぐにファイルに書き込まれることを確認します。

  • 戻り値を確認する: もしfflush()が 0 を返すと、バッファのフラッシュが成功したことを示します。それ以外の場合は、エラーが発生したことを示します。

  • ファイルを閉じる: 使用fclose()ファイルを閉じます。

データが正常にファイルに書き込まれました。

プログラムはファイル example.txt を開き、文字列 "Hello, World!" を書き込みます。

fflush(fp) はバッファのフラッシュに成功し、0 を返すため、"データがファイルに正常に書き込まれました。" と出力します。

ファイル example.txt の内容は次のようになります:

Hello, World!

C標準ライブラリ - <stdio.h>

その他の拡張