「ファイル記述子」の版間の差分
削除された内容 追加された内容
m ロボットによる 追加: sk:Deskriptor (výpočtová technika) |
m編集の要約なし |
||
| (19人の利用者による、間の20版が非表示) | |||
1行目:
{{出典の明記|date=2025年9月}}
[[画像:Stdstreams-notitle.svg|thumb|right|標準入力 (stdin)、標準出力 (stdout)、標準エラー出力 (stderr) のファイル記述子の概念図]]
'''ファイル記述子'''(ファイルきじゅつし、{{lang-en|file descriptor}})とは、[[プログラミング (コンピュータ)|コンピュータプログラミング]]において[[ファイル (コンピュータ)|ファイル]]への[[参照 (情報工学)|参照]]を抽象化したキーである。'''ファイルディスクリプタ'''/'''ファイルデスクリプタ'''<ref>[https://e-words.jp/w/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%82%BF.html ファイルディスクリプタ(ファイル記述子)とは - 意味をわかりやすく - IT用語辞典 e-Words]</ref><ref>[https://www.nag-j.co.jp/nagfor/np70_manual/compiler_7_5.html NAG Fortran Compiler, Release 7.0: f90_unix_errno]</ref>あるいは'''FD'''とも呼ばれる。[[Unix系]]システムで[[テキスト端末|テキストターミナル]]を含む[[ファイル (コンピュータ)|ファイル]][[ストリーム (プログラミング)|ストリーム]]を参照する際に用いられる。
[[MS-DOS]]<ref>[https://www.atmarkit.co.jp/ait/articles/1404/24/news144.html MS-DOS温故知新 ~ソースコード公開を期にパソコン大衆化の原点を振り返る~:MS-DOS歴史的遺産化記念企画 - @IT]</ref>や[[Microsoft Windows]]では、「ファイルハンドル」がほぼ相当するが、技術的には異なるオブジェクトである。
== 概要 ==
[[POSIX]]では、ファイル記述子は[[整数型]]の値であり、詳述すれ
{| class="wikitable"
19 ⟶ 22行目:
|}
一般にファイル記述子は、オープン中のファイルの詳細を記録
[[
[[Java]]の[[Javaクラスライブラリ|標準クラスライブラリ]]には、ファイル記述子を表現するハンドルとして{{Javadoc:SE|name=java.io.FileDescriptor|java/io|FileDescriptor}}があり、主に{{Javadoc:SE|name=java.io.FileInputStream|java/io|FileInputStream}}または{{Javadoc:SE|name=java.io.FileOutputStream|java/io|FileOutputStream}}を作成するために使用される。
[[Microsoft Windows]]カーネルでは、ファイル記述子と同様であるが、より汎用的な機構によりファイルオブジェクトを含むさまざまなカーネルオブジェクトを[[ハンドル]]として識別子に関連づける枠組が採用されている。特にファイルを表すカーネルオブジェクトに関連づけられたハンドルを「ファイルハンドル」と呼ぶが、これはPOSIXにおけるファイル識別子とほぼ同等の役割を担うものと解釈することができる。このファイルハンドルは、前述のC標準ライブラリのファイルハンドルとは異なるさらに低レベルな構造を指す用語であるが、記述上は同一のため、混乱を生じることがある。▼
=== MS-DOS・Microsoft Windows ===
マイクロソフトの[[Cライブラリ|Cランタイムライブラリ (CRT)]]は、C標準I/Oライブラリとは別に、UNIX互換関数群として、ネイティブのファイルハンドルをPOSIX的な整数のファイル記述子に変換して扱う機能を持っている。▼
▲[[Microsoft Windows]]カーネルでは、ファイル記述子と同様であるが、より汎用的な機構によりファイルオブジェクトを含むさまざまなカーネルオブジェクトを「[[間接参照|ハンドル]]」と
▲[[マイクロソフト]]の
==ファイル記述子に関する操作==
{{いつ範囲|date=2019年3月|最近}}の
===ファイル記述子の生成===
47 ⟶ 53行目:
* lseek(), lseek64()
* fstat(), fstat64()
* ftruncate()
* fchmod()
* fchown()
87 ⟶ 94行目:
===その他===
* [[ioctl]](): 一般にデバイスに対応するファイル記述子に関する様々な操作をする。
==ケイパビリティとしてのファイル記述子==
[[UNIX]]のファイル記述子は、一種の[[Capability-based security|ケイパビリティ]]である。sendmsg() システムコールを使うとプロセス間でファイル記述子をやり取りすることができる。つまり、UNIXのプロセスが持つファイル記述子テーブルは「ケイパビリティリスト (C-list)」の実例と見ることもできる。
== 脚注 ==
{{Computer-stub}}▼
{{脚注ヘルプ}}
=== 注釈 ===
{{Notelist}}
=== 出典 ===
{{Reflist}}
== 関連項目 ==
* [[ファイル (コンピュータ)]]
{{ファイル (コンピュータ)}}
▲{{Computer-stub}}
{{デフォルトソート:ふあいるきしゆつし}}
[[Category:UNIX|ふあいるきしゆつし]]
[[de:Handle#Datei-Handle]]▼
▲[[de:Datei-Handle]]
| |||