HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > c > close - システムコールの説明

close - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 準拠
  7. 注意
  8. 関連項目

名前

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) を使用すること (この時点ではディスクのハードウェアに依存する)。

関連項目

Linux Tips 関連記事
Linux Tips(目次)
Linux ディストリビューション一覧
rpm のファイル名にあるi386とかi686とは
自分のマシンの情報を調べる
cron の設定
ssh の root ログインを禁止する
ssh を、ユーザ、IPでアクセス制限
鍵交換方式によるssh接続
鍵交換方式によるssh接続( windowsから )
複数ファイル内の文字列を置換して上書き保存する
あるグループをイニシャルグループとするユーザー一覧出力
複数ファイルのファイル名を一括変換する
連番ファイルをコマンド一発で作成する
中身がランダムなファイルを任意のサイズで作成する
Linux ユーザーアカウントをロック・アンロックする