FFLUSH(3)

名前
fflush, fpurge - ストリームの内容を強制的に出力する関数

書式
#include <stdio.h>

int fflush( FILE *stream);
int fpurge( FILE *stream);

説明
fflush 関数は与えられた出力のため、またはストリーム stream の下位にある書き込み関数を通じて、このストリームを更新するために、 全てのバッファリングされたデータを強制的に書き込む。 ストリームは開いた状態のままであり、 この関数によって何の影響も受けない。

もし stream 引数が NULL ならば、 fflush は開いている すべての 出力ストリームに書き込む。(これはLinuxでも起こる？)

fpurge 関数は、与えられた stream にバッファされたすべての入力や出力を消去する。 出力ストリームについては、この関数は書き込まれていないすべての出力を 消去する。 入力ストリームについては、 下位にあるオブジェクトから読み込んで getc(3) を通じて獲得していない全ての入力を消去する。 これは、 ungetc を通じてストリームに戻された全てのテキストを含む。

返り値
個々の実行が成功するたびに 0 が返される。 その他の場合には、 EOF が返され、大域変数 errno が、エラーを示すために設定される。

エラー

EBADF
    Stream は開いているストリームではない。 fflush の場合には、ストリームは書き込み用ではない。

fflush 関数は write(2) ルーチンで特定されるエラーについて、 errno をセットする。

バグ
Linuxは fpurge をサポートしていない。

関連項目
write(2), fopen(3), fclose(3), setbuf(3)

準拠
fflush 関数はANSI C3.159-1989 (``ANSI C'')に準拠する。