[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ファイルディスクリプタ (FD)

pointこの用語のポイント

pointファイルへの通り道に割り振られた番号だよ

pointファイルを識別するために使われるよ

スポンサーリンク

簡単に書くよ

ファイルディスクリプタ (FD)とは

ファイル(への通り道)に割り振られる番号で、ファイルを識別するための目印
です。

image piyo

詳しく書くよ

ファイルは、コンピュータさんの世界における「書類」ね。

ファイルディスクリプタ

ファイルディスクリプタの勉強をするときには、このイメージを捨ててください。
ファイルは、書類ではありません。
紙パック入りのジュースです。

ファイルディスクリプタ2

「いきなり何言ってんだ?こいつ」と思うでしょうが、我慢して、お付き合いください。
ここでポイントとなるのは、紙パック入りのジュースに付いているストローです。

ファイルディスクリプタ3

例えば、ピヨ太君がファイルを開いたとしましょう。
いわゆる「file open」ってやつですね。
これは、紙パック入りのジュースにストローを指す行為に相当します。

ファイルディスクリプタ4

次に、ピヨ太君はファイルの中身を読み込みました。
「read」ってやつです。
これは、ストローに口を付けて、ジュースを「ちゅ~っ」と吸う行為に相当します。

ファイルディスクリプタ5

次に、ピヨ太君はファイルに書き込みました。
「write」ってやつです。
これは、ストローに口を付けて、空気を「ぶくぶくぶく~」と送り込む行為に相当します。

ファイルディスクリプタ6

最後に、ピヨ太君はファイルを閉じました。
これは、紙パックからストローを抜き取る行為に相当します。

ファイルディスクリプタ7

それを踏まえて、次に行きましょう。

ピヨ太君は、リンゴジュースとミカンジュースとイチゴジュースを一緒に飲んでいます。

もちろん、同時に飲んでいるわけではないですよ。
そんなことをしたら、口の中で味が混ざって美味しくありません。
リンゴジュースを「ちゅ~っ」と吸ったら、一息入れてミカンジュースを「ちゅ~っ」、さらに一息入れてイチゴジュースを「ちゅ~っ」です。

ファイルディスクリプタ8

おっと、1つ言うのを忘れていました。
ピヨ太君からは、紙パックが見えていません。

横着者のピヨ太君は、台所までジュースを取りに行くのが面倒くさかったのです。
そこで、すんごい長いストローを作って、居間から台所まで届くようにしました。
実際にジュースにストローを指すのは、ピヨ太ママにお任せです。

ファイルディスクリプタ9

これでピヨ太君は、居間にいながらにして、台所にあるジュースを味わえるわけです。
「素直にピヨ太ママに持ってきてもらえよ!」と突っ込んではいけませんよ。
ピヨ太君は、賢いけどアホなのです。

さて、すんごい長いストローでジュースを「ちゅーちゅー」しようと思ったピヨ太君ですが、ここで問題に気付きました。
どのストローを吸えば、どのジュースが出てくるのか、分かりません。

ファイルディスクリプタ10

これでは困ります。

そこでピヨ太君は、ストローに目印を付けておくことにしました。
ジュースの種類を書いておくことにしたのです。
「これはリンゴ」「こっちはミカン」「残りがイチゴ」みたいな感じですね。

ファイルディスクリプタ11

ふぃ~、これで問題は解決です。

リンゴジュースを飲みたければ、リンゴの目印が付いているストローを吸えば良いのです。
同様に、ミカンジュースを飲みたければ、ミカンの目印が付いているストローを吸います。
イチゴジュースを飲みたければ、イチゴの目印の付いているストローです。

ファイルディスクリプタ12

この話における、ピヨ太君がOSパソコンさんの人格に相当するソフト)とかプログラム、ジュースがファイルです。

ファイルディスクリプタ13

ストローは、ファイルに対するデータの通り道です。
ファイルの中身が行ったり来たりします。

ファイルディスクリプタ14

最後に、ストローに付けた目印が「ファイルディスクリプタ」です。
ファイルに対するデータの通り道を識別するために使われます。

ファイルディスクリプタ15

「ファイルに対するデータの通り道を識別するための目印」というのも、なんか長ったらしいですね。
要するに「どのファイルにつながっているよ!」を示す目印です。
ファイルディスクリプタは「ファイルを識別するための目印」と言えるでしょう。

これがファイルディスクリプタです。
紙パックのストローに付ける目印です。
具体的な仕組みとかは、専門的に説明しているところで情報を補完してください。

なお、留意事項としてUNIX系(Linuxとか)では、ファイル以外もファイルとして扱われます……と言われても、分からないですよね。

細かい説明は端折りますが

標準入力キーボードからの入力
標準出力:画面への出力
標準エラー出力:画面への出力


に対する操作も、ファイルにあれこれするのと同じようなやり方で行うのです。

よって、標準入力、標準出力、標準エラー出力、それぞれに対して、ファイルディスクリプタが割り当てられています。

よく分からない方は、パソコンさんが起動すると、いきなりジュースを3つ飲む準備をすると思ってください。

1.「標準入力」ジュースを飲む準備OK!あっ、目印は「0」ね
2.「標準出力」ジュースを飲む準備OK!あっ、目印は「1」ね
3.「標準エラー出力」ジュースを飲む準備OK!あっ、目印は「2」ね


です。

ファイルディスクリプタ16

つまり「0」から「2」までのファイルディスクリプタは

0:標準入力
1:標準出力
2:標準エラー出力


と決まっています。
パソコンさんが動き出した時点で、割り当てられるのです。

よって、自分で開いたファイルには「3」以降の数字が割り当てられます。
また、標準入力や標準出力、標準エラー出力に何かしたいときは「0」から「2」のいずれかを指定することになります。

image piyo2

一言でまとめるよ

まぁ「ファイルディスクリプタ」って単語が出てきたら「ファイル識別用の目印となる番号なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク