名前


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)

openSUSE Logo

コンテンツ