Provided by: manpages-ja-dev_0.5.0.0.20140515+dfsg-2_all bug

名前

       fflush - ストリームの内容を強制的に出力(フラッシュ)する

書式

       #include <stdio.h>

       int fflush(FILE *stream);

説明

       出力ストリームに関しては、   fflush()   は、ユーザー空間でバッファリングされているすべての
       データを 指定された出力に書き出す (フラッシュする)、 もしくはストリーム stream  の下位にあ
       る書き込み関数を用いてこのストリームを更新する。    入力ストリームに関しては、    fflush()
       は、対応するファイルから取得されたが、アプリケーションからは    読み出されていないバッファ
       データを全て破棄する。 ストリームは開いた状態のままであり、 この関数によって何の影響も受け
       ない。

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

       これらの処理をロックせずに行いたいときは、 unlocked_stdio(3)  を参照のこと。

返り値

       成功すると 0 が返される。 その他の場合には EOF が返され、 errno が、エラーに対応した値に設
       定される。

エラー

       EBADF  Stream は開いているストリームではない。 あるいはストリームは書き込み用ではない。

       fflush()   関数は  write(2)   に関して規定されているエラーで失敗することもある。  この場合
       errno もその値に設定される。

属性

   マルチスレッディング (pthreads(7) 参照)
       関数 fflush() はスレッドセーフである。

準拠

       C89, C99, POSIX.1-2001, POSIX.1-2008.

       標準では、入力ストリームに対する動作は規定されていない。 他のほとんどの実装は Linux と同じ
       動作をする。

注意

       fflush()  は、 C ライブラリが与えているユーザー空間のバッファしかフラッシュしない。 データ
       が物理的にディスクに保存されることを保証したければ、  カーネルバッファもフラッシュしなけれ
       ばならない。 これには例えば sync(2)  や fsync(2)  を用いる。

関連項目

       fsync(2), sync(2), write(2), fclose(3), fopen(3), setbuf(3), unlocked_stdio(3)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。