FFLUSH
Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index
JM Home Page
roff page
 
名前
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
もその値に設定される。
 
属性
この節で使用されている用語の説明については、 attributes(7) を参照。
| インターフェース | 属性 | 値 
 | 
| fflush() | Thread safety | MT-Safe 
 | 
 
準拠
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), fileno(3),
fopen(3), setbuf(3), unlocked_stdio(3)
 
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/ に書かれている。
 Index
- 名前
- 
- 書式
- 
- 説明
- 
- 返り値
- 
- エラー
- 
- 属性
- 
- 準拠
- 
- 注意
- 
- 関連項目
- 
- この文書について
- 
This document was created by
man2html,
using the manual pages.