ファイルのオープンとクローズ


「ファイルポインタとファイルオープン」   

ファイルはファイル名によって識別されますが、そのファイルにアクセスするためにはファイルポインタに対しファイルオープンしなければなりません。ファイルポインタとはファイルを操作するための特別な識別子で、構造体FILE型(stdio.hの中で定義されている)のポインタ変数として次のように宣言します。

FILE * fp ;
      fp : ファイルポインタ変数

   ファイルとの間でデータを読み書きするときには、関数 fopen( )を使ってそのファイルをオープンしなければなりません。ファイルをオープンするには次のようにします。

FILE * fopen(”ファイル名”,”モード”);

{モード}    ”r”     :   読み込み(ファイルが存在しない場合エラー)
               ”w”     :   書き込み(存在しない場合ファイル作成、あれば上書き)
               ”a”      :    追加書き込み(存在しない場合ファイル作成、あれば追加書き込み)
               ”r+”   :   読み出しと書き込み(存在しないときエラー)
               ”w+” :   読み出しと書き込み(存在しないときファイル作成、あれば上書き)
               ”a+”   :   読み出しと追加書き込み(存在しないときファイル作成、あれば追加書き込み)

  fopen( )はそのファイルに対応したFILE構造体のポインタであるファイルポインタを返します。
  ファイルは必ずしもオープンできるとは限りません。存在しないファイルや、書き込み、読み込み禁止のファイルはオープンできません。ファイルがオープンできなければ、fopen( )はNULLポインタを返します。よって、ファイルが正常にオープンしたかどうか分かるようにファイルのオープンは通常次のように行います。

FILE * fp
if ((fp=fopen(ファイル名,モード))==NULL){
     printf("file not open\n");
     exit(1);            
←プログラムを強制的に終了させるための変数
  }

 


「ファイルのクローズ」
  fopen()でオープンしたファイルを使い終わったらそのファイルは、fclose()でクローズします。正常にクローズできれば0、エラーなら−1を返します。

fclose(fp);
 
fp : オープンされているファイルポインタ

「基礎講座もくじへ」

「Q&Aもくじへ」

「つぎへ」