Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all
名前
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/ に書かれている。