コンピュータで、「ファイルを開く」という概念がよく理解できません。コンピュータコンピュータで、「ファイルを開く」という概念がよく理解できません。hello.txtと実行すると、物理的にはHDDにデータが書き込まれます。したとき、fopenの裏側では何が行われているのでしょうか?ファイルポインタ(とかファイルハンドル)とは一体何なんでしょうか?読み取り、書き込みは、物理メディアに対しての物理的動作をイメージできますが、オープン、クローズは何もイメージできません。00:50:2316ptファイルを開く読み取りまたは書き込みを開始することの宣言。読み込みまたは書き込みを行うための領域が、メモリ上に確保される。この領域に対する目印が「ポインタ」。ファイルを閉じる読み取りまたは書き込みを完了することの宣言。読み込みまたは書き込みを行うための領域が、メモリ上から廃棄される。01:27:18>実際の(HDDなどの)物理メディア上では何も動かないのでしょうか?アプリケーションで「開く/閉じる」と言う場合と、OSで「開く/閉じる」と言う場合とで異なってきます。Windowsで「読み込みで開く」と言う場合、そのファイルの先頭から一定量のデータを先読みします。「書き込みで開く」と言う場合、指定された名前のファイルをあらかじめ作成します。アプリケーションで「開く」と言う場合、アプリケーション毎に挙動が異なります。07:34:34むむむ・・よくわからなくなってきました。「開く」と「読む」は違うと思ったのですが。08:05:25『「開く」と「読む」は違うと思ったのですが。』確かに違います、回答者の文を読めばそう言う理解にならないと思いますが。紙製の「ノート」をイメージしてみて下さい。ノートを開く事、つまり「読み書き」する為の準備が「開く」です。「開いた」あと、書き込まれた事を「読んだり」「書き込みを修正したり」「新たに書き加えたり」「消す事」ができます。「閉じる」は「読み書き」作業が終了した後、「読み書き」できない状態にすることです。コンピュタのメモリーの場合、読み書き(書き換え・消去を含む)のできるものをRWM、読むことだけ出来るものをROMといいます。(1度だけ、書き込みができるものもありますが)そこが「紙製」と少し違いが有りますが、兎に角「開く」「閉じる」の概念は共通です。き込み」はできません。行間にメモや塗りつぶしはできますが。見つけたのでリンクを貼っておきます。"Linuxカーネル2.4の設計と実装。図14のあたりにファイルのオープンやクローズについても書かれています。斜め読みしただけですが、参考になると思います。あとは「C言語によるUNIXシステムプログラミング入門」という本が参考になるとおもいます。関数の核になる、よりハードウェアに近い関数(低水準入出力関数)やファイルポインタが指しているもの(利用者ファイル記述子表)などについての説明もあります。私が回答できるのはこれだけですので、参考程度に思ってください。面白い質問だと思うので、私も他の方の回答を楽しみにしています。