Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all bug

名前

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

書式

       #include <stdio.h>

       int fflush(FILE *stream);

説明

       出力ストリームに関しては、  fflush()  は、ユーザー空間でバッファーリングされているすべてのデータを 指定さ
       れた出力に書き出す (フラッシュする)、 もしくはストリーム stream  の下位にある書き込み関数を用いてこのスト
       リームを更新する。

       seek 可能なファイルに関連付けられた入力ストリーム (ディスクファイルは seek 可能だが、 パイプや端末は seek
       できない) に関しては、 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.

       POSIX.1-2001 では入力ストリームのフラッシュの動作は規定されていなかったが、 POSIX.1-2008 では規定されてい
       る。

注意

       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.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。