|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > c > close - システムコールの説明 close - システムコールの説明 - Linux コマンド集 一覧表名前close - ファイル・ディスクリプターをクローズする 書式
#include <unistd.h> 説明close ()はファイル・ディスクリプター (descriptor) をクローズする。 そのディスクリプターは、どのファイルも参照していない状態になり、 再使用が可能になる。 そのファイルディスクリプターに関連づけられたファイルに かけられたレコード・ロック ( fcntl (2)参照) のうち、そのプロセスが保有しているものは、 (そのファイルディスクリプターがロック取得に利用されたか どうかによらず) すべて削除される。 fd がそのファイル・ディスクリプターの最後のコピーだった場合には、 そのディスクリプターに関連したリソースは解放される。 ディスクリプターが unlink を使用して削除 (remove) されたファイルに対する最後の参照だった場合には、 そのファイルは除去 (delete) される。 返り値close ()は成功した場合は 0 を返す。 エラーが発生した場合は -1 を返して、 errno を適切に設定する。 エラー
準拠SVr4, 4.3BSD, POSIX.1-2001. 注意close ()の返り値のチェックはよく省略されるが、 これは深刻なプログラミングエラーである。 前の write (2) 処理が最後の close ()のときになって初めて通知される場合に、エラーが起きる可能性が高い。 ファイルクローズの際に返り値をチェックしないと、 気付かないうちにデータを失ってしまうかもしれない。 これは特に NFS やディスク・クォータを使用した場合に見られる。 クローズに成功しても、データがディスクに保存されたかどうかは 保証されない (カーネルが書きこみを遅延させることがあるので)。 ストリームがクローズされるときにバッファをフラッシュするかどうかは、 ファイルシステムによって異なる。 データが物理的に保存されることを確かにする必要がある場合には、 fsync (2) を使用すること (この時点ではディスクのハードウェアに依存する)。 関連項目
|
|