ファイルディスクリプタ 【file descriptor】 ファイル記述子

概要

ファイルディスクリプタ(file descriptor)とは、プログラムからファイルを操作する際、操作対象のファイルを識別・同定するために割り当てられる番号。オペレーティングシステム(OS)にファイルの操作を依頼する際に用いられるで、通常は16ビット符号なし整数が用いられる。

ファイルシステムOSが管理しているため、プログラムからファイルの読み書きをするにはOSの中核部分であるカーネルに処理を依頼する形を取る。その際に用いられるファイルの識別番号をファイルディスクリプタという。主にUNIX系OSで用いられる仕組みで、Windowsでは「ファイルハンドル」(file handle)がほぼこれに相当する仕組みを提供する。

プログラムが特定のファイルを指定して「開く」操作をうと、カーネル内の「ファイルテーブル」と呼ばれる領域に対応する項目が作成され、対象ファイルストレージ上での位置(パス)、ファイル内の現在の操作位置などの情報が記録される。

このテーブル内での当該ファイルの識別番号がファイルディスクリプタで、以降はプログラムからファイルディスクリプタを指定して、どのファイルへの操作なのかをカーネルに伝達する。処理が終わりプログラム上でファイルを「閉じる」操作をうと、テーブル内の項目は抹消され、対応するファイルディスクリプタも未使用の状態に戻る。

通常、ファイルディスクリプタは0から順番に未使用の最も小さいが与えられるようになっており、プログラム上では整数型変数などとして扱われる。ただし、番号によっては固定的に特殊な対象を表す場合があり、一般的には「0」は標準入力stdin)、「1」は標準出力stdout)、「2」は標準エラー出力stderr)としてプログラムの実行中は常に開いた状態になっている。

ファイルディスクリプタには上限値があり、これを超える数のファイルを同時に開くことはできない。上限値はプロセスごとのOS全体のが決まっており、システムや設定によって具体的なは異なる。Linuxなど多くのシステムでは初期値がプロセスごとの上限が1024に設定されていることが多い。16ビットの整数値が表現できる上限である65535を超えるを指定することはできない。

(2024.2.28更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる