Rechercher une page de manuel
close
Langue: ja
Version: 2001-12-13 (fedora - 25/11/07)
Section: 2 (Appels système)
名前
close - ファイル・ディスクリプターをクローズする書式
#include <unistd.h> int close(int fd);
説明
close() はファイル・ディスクリプター (descriptor) をクローズする。 そのディスクリプターは、どのファイルも参照していない状態になり、 再使用が可能になる。 そのファイルディスクリプターに関連づけられたファイルに かけられたレコード・ロック (fcntl(2) 参照) のうち、そのプロセスが保有しているものは、 (そのファイルディスクリプターがロック取得に利用されたか どうかによらず) すべて削除される。fd がそのファイル・ディスクリプターの最後のコピーだった場合には、 そのディスクリプターに関連したリソースは解放される。 ディスクリプターが unlink を使用して削除 (remove) されたファイルに対する最後の参照だった場合には、 そのファイルは除去 (delete) される。
返り値
close() は成功した場合は 0 を返す。 エラーが発生した場合は -1 を返して、 errno を適切に設定する。エラー
- EBADF
- fd が有効なオープンされたディスクリプターでない。
- EINTR
- close() コールがシグナルにより中断 (interrupt) された。
- EIO
- I/O エラーが発生した。
準拠
SVr4, 4.3BSD, POSIX.1-2001.注意
close() の返り値のチェックはよく省略されるが、 これは深刻なプログラミングエラーである。 前の write(2) 処理が最後の close() のときになって初めて通知される場合に、エラーが起きる可能性が高い。 ファイルクローズの際に返り値をチェックしないと、 気付かないうちにデータを失ってしまうかもしれない。 これは特に NFS やディスク・クォータを使用した場合に見られる。クローズに成功しても、データがディスクに保存されたかどうかは 保証されない (カーネルが書きこみを遅延させることがあるので)。 ストリームがクローズされるときにバッファをフラッシュするかどうかは、 ファイルシステムによって異なる。 データが物理的に保存されることを確かにする必要がある場合には、 fsync(2) を使用すること (この時点ではディスクのハードウェアに依存する)。
関連項目
fcntl(2), fsync(2), open(2), shutdown(2), unlink(2), fclose(3)Contenus ©2006-2023 Benjamin Poulain
Design ©2006-2023 Maxime Vantorre