ファイル記述子
ファイルへの通り道に割り振られた番号だよ
ファイルを識別するためのものだよ
簡単に書くよ
ファイル記述子(読:ファイルキジュツシ 英:file descriptor)とは
「ファイルディスクリプタ」のこと。
用語の中身としては
ファイルを識別するための目印
であり
ファイル(への通り道)に割り振られる番号
です。
詳しく書くよ
ファイルは、コンピュータさんの世界における「書類」ね。
ファイル記述子の勉強をするときには、このイメージを捨ててください。
ファイルは書類ではありません。
紙パック入りのジュースです。
「いきなり何言ってんだ?こいつ」と思うでしょうが、我慢して、お付き合いください。
ここでポイントとなるのは、紙パック入りのジュースに付いているストローです。
例えば、そうですね。
ピヨ太君がファイルを開いたとしましょう。
いわゆる「file open」ってやつですね。
これは紙パック入りのジュースにストローを指す行為に相当します。
次に、ピヨ太君はファイルの中身を読み込みました。
「read」ってやつです。
これはストローに口を付けてジュースを「ちゅ~っ」と吸う行為に相当します。
次に、ピヨ太君はファイルに書き込みました。
「write」ってやつです。
これはストローに口を付けて空気を「ぶくぶくぶく~」と送り込む行為に相当します。
最後に、ピヨ太君はファイルを閉じました。
これは紙パックからストローを抜き取る行為に相当します。
それを踏まえて、次に行きましょう。
ピヨ太君は「リンゴジュース」と「ミカンジュース」と「イチゴジュース」を一緒に飲んでいます。
もちろん同時に飲んでいるわけではありませんよ。
そんなことをしたら、口の中で味が混ざって美味しくありません。
リンゴジュースを「ちゅ~っ」と吸ったら、一息入れてミカンジュースを「ちゅ~っ」と吸い、さらに一息入れてイチゴジュースを「ちゅ~っ」です。
おっと、1つ言うのを忘れていました。
ピヨ太君からは紙パックが見えていません。
横着者のピヨ太君は台所までジュースを取りに行くのが面倒くさかったのです。
そこで、すんごい長いストローを作って、居間から台所まで届くようにしました。
実際にジュースにストローを指すのはピヨ太ママにお任せです。
これでピヨ太君は居間にいながらにして台所にあるジュースを味わえます。
「素直にピヨ太ママに持ってきてもらえよ!」と突っ込んではいけませんよ。
ピヨ太君は賢いけどアホなのです。
さて、すんごい長いストローでジュースを「ちゅーちゅー」しようと思ったピヨ太君ですが、ここで問題に気付きました。
どのストローを吸えば、どのジュースが出てくるのか、分かりません。
これでは困ります。
そこでピヨ太君はストローに目印を付けておくことにしました。
ジュースの種類を書いておくことにしたのです。
「これはリンゴ」「こっちはミカン」「残りがイチゴ」みたいな感じですね。
ふぃ~、これで問題は解決です。
リンゴジュースを飲みたければ、リンゴの目印が付いているストローを吸えば良いのです。
ミカンジュースを飲みたければ、ミカンの目印が付いているストローを吸います。
イチゴジュースを飲みたければ、イチゴの目印の付いているストローです。
この話における、ピヨ太君がOS(パソコンさんの人格に相当するソフト)とかプログラムだと思ってください。
ジュースはファイルです。
ストローはファイルに対するデータの通り道です。
ファイルの中身が行ったり来たりします。
最後に、ストローに付けた目印が「ファイル記述子」です。
「ファイルディスクリプタ」とも呼ばれます。
ファイルに対するデータの通り道を識別するために使われます。
「ファイルに対するデータの通り道を識別するための目印」というのも、なんか長ったらしいですね。
要するに「どのファイルにつながっているよ!」を示す目印です。
ファイル記述子は
ファイルを識別するための目印
と言えるでしょう。
これがファイル記述子です。
紙パックのストローに付ける目印です。
具体的な仕組みとかは専門的に解説しているところで情報を補完してください。
なお、UNIX系(Linuxとか)ではファイル以外もファイルとして扱われます……と言われても、よく分からないですよね。
細かい説明は端折りますが
・標準入力:キーボードからの入力
・標準出力:画面への出力
・標準エラー出力:画面への出力
に対する操作もファイルにあれこれするのと同じようなやり方でやるのです。
よって、標準入力、標準出力、標準エラー出力、それぞれに対して、ファイル記述子が割り当てられています。
よく分からない方は、パソコンさんが起動すると、いきなりジュースを3つ飲む準備をすると思ってください。
1.「標準入力」ジュースを飲む準備OK!あっ、目印は「0」ね
2.「標準出力」ジュースを飲む準備OK!あっ、目印は「1」ね
3.「標準エラー出力」ジュースを飲む準備OK!あっ、目印は「2」ね
です。
つまり「0」から「2」までのファイル記述子は
0:標準入力
1:標準出力
2:標準エラー出力
と決まっています。
パソコンさんが動き出した時点で割り当てられるのです。
よって、自分で開いたファイルには「3」以降の数字が割り当てられます。
また、標準入力や標準出力、標準エラー出力に何かしたいときは「0」から「2」のいずれかを指定することになります。
一言でまとめるよ
まぁ「ファイル記述子」って単語が出てきたら「ファイル識別用の目印となる番号なんだな~」と、お考えください。
おまけ
■検索してみる?