FCLOSE(3) |
Linux Programmer's Manual |
FCLOSE(3) |
名前
fclose -ストリームを閉じる
書式
#include <stdio.h>
int fclose(FILE *
fp
);
説明
fclose() 関数は、
fp が指すストリームを (バッファリングされていた全ての出力データを
fflush(3) を用いて書き込んで) フラッシュし、対応するファイルディスクリプタをクローズする。
返り値
関数が正常に終了すると 0 が返される。正常に終了しなかった場合には
EOF が返され、
errno がエラーを示すために設定される。どちらの場合も、そのストリームに対する (
fclose() へのさらなる呼び出しを含む) それ以上のアクセスは未定義の動作を生じさせる。
エラー
-
EBADF
-
fp の基となるファイルディスクリプタが不正である。
fclose() 関数はこれ以外にも close(2), write(2), fflush(3) のルーチンで失敗することがある。その場合は errno が、失敗したルーチンで設定された値に設定される。
準拠
C89, C99.
注意
fclose() は C ライブラリで提供されたユーザー空間バッファをフラッシュするだけである点に注意すること。データを確実に物理的にディスクに記録するためにはカーネルバッファも (
sync(2) や
fsync(2) を用いて) フラッシュしなければならない。
関連項目
close(2),
fcloseall(3),
fflush(3),
fopen(3),
setbuf(3)
この文書について
この man ページは Linux
man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。