[基礎] ファイルハンドル


はじめに

◯◯ハンドル、〇〇ハンドラーなど色々ありますが、ハンドルネームが一意とか固有の名前って意味だから、そんな感じの意味なんだろうなあと思って、ちゃんと理解していなかったので調べました。

↓こちらとても分りやすくて参考になりました。
コンピュータシステムの理論と実装

ハンドラ

何かと何かの間に立って橋渡しをするもので、通常のプログラムの流れには組み込まれずに、何らかの処理要求が発生したときに起動される。

[現実世界の例]

  • お金
    • 物々交換しなくて済みます!
  • キャッシュカード
    • 現金のせいで部屋が狭くて困っていたので預かってもらえて幸いです!
  • ATM
    • 現金をどこでも引き出せる!
    • 窓口の手続きがなくなってWINWINですね。
  • 自動販売機
    • お金を入れれば飲み物が出てきます!
    • ジュース補充係の人には頭が下がります。
  • ガソリンスタンド
    • サウジまで油を買いに行かなくても大丈夫です!
    • 油がなくなりましか。もう自分で油田を掘らなくてもOK!
  • etc...

数えたらきりがないです。世の中ハンドラで溢れています。

[プログラミング界の例]

  • 例外ハンドラ
  • イベントハンドラ
    • ファイルハンドラ (一番馴染みのあるハンドラだと思います)
  • 割り込みハンドラ

ハンドリング

ハンドラが行うことをハンドリングと呼ぶ。

ハンドル

複数のハンドリングを行いたい時に、個々のハンドリングが識別できるよう各々のハンドリングに一意の番号をつける。この番号をハンドル、あるいはポインタのポインタとも呼ばれる。

なぜポインタのポインタなのか?

例えばハンドラAに複数のハンドリングを行いたい時

ハンドリングが幾つかのポインタをもっている場合を想像してみると分かると思う。

例) Webブラウザのウィンドウを多重起動

[ディスプレイ]

ウィンドウ1: HackerNews, ProductHunt
ウィンドウ2: Qiita
ウィンドウ3: Xvide◯s, P◯rnTube, YouP◯rn

[内部処理]

ハンドラAのハンドリング1(ポインタ: 1000,1001)
ハンドラAのハンドリング2(ポインタ: 1002) 
ハンドラAのハンドリング3(ポインタ: 1006,1007,1008) 
etc...

ファイルハンドル

いよいよ本題のフィアルハンドルです。もう説明不要だと思いますが。

プログラムからファイルの読み書きを便利に便利にこなしてくれるイベントハンドルのひとつであるファイルハンドラの固有識別番号です。

まとめ

普段使っているハンドルネームの意味がプログラムの視点で理解できました、ポインタのポインタの理解も深まりました。