Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all ![bug](/img/bug.png)
![bug](/img/bug.png)
名前
fflush - ストリームの内容を強制的に出力(フラッシュ)する
書式
#include <stdio.h> int fflush(FILE *stream);
説明
出力ストリームに関しては、 fflush() は、ユーザー空間でバッファリングされているすべてのデータを 指定され た出力に書き出す (フラッシュする)、 もしくはストリーム stream の下位にある書き込み関数を用いてこのスト リームを更新する。 入力ストリームに関しては、 fflush() は、対応するファイルから取得されたが、アプリケー ションからは 読み出されていないバッファデータを全て破棄する。 ストリームは開いた状態のままであり、 この関 数によって何の影響も受けない。 stream 引数が .BR 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.54 の一部 である。プロジェクトの説明とバグ報告 に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。