FFLUSH(3)

名称
fflush, fpurge - ストリームのフラッシュ

ライブラリ
libc

書式
<stdio.h> int fflush(FILE *stream) int fpurge(FILE *stream)

解説
fflush() 関数は、すべてのバッファされたデータを対応する 出力に強制的に書込みます。 またはストリームの場合は、下層の書込み関数を用いて stream の更新を強制的に実行します。 ストリームは開いた状態のままで、この関数によって影響は受けません。

stream 引数が NULL の場合、 fflush() は開いている すべての 出力ストリームをフラッシュします。

fpurge() 関数は、指定された stream のバッファに入っているどんな入出力も消去します。 出力ストリームの場合は、書込まれていない出力を破棄します。 入力ストリームの場合は、下層オブジェクトから読込んであり、 getc(3) で取り出されていない入力を破棄します。 これには、 ungetc でプッシュバックされたテキストも含まれます。

戻り値
処理が正常に完了すると、値 0 が返されます。 そうでない場合は EOF が戻され、エラーを示すためにグローバル変数 errno が設定されます。

エラー

[EBADF]
    stream が開いているストリームではありません。 fflush() の場合、ストリームが書込み用に開いていません。

fflush() 関数がエラーになると、ルーチン write(2) で指定されたエラーが errno に設定されます。

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

規格
fflush() 関数は、 isoC に適合しています。