FILE *fp; |
fp = fopen(”name”, mode); |
ここで、fpはファイルポインタを意味し、ファイルオープン後、 ファイルへのアクセスはすべてファイルポインタを使って行なわれる。 nameはファイル名、modeは使用方法を示すモードである。
例えば、kojima.dat
というファイルがテキストファイルで、
読み取り専用でオープンしたい場合には、下記のようにする。
FILE *fp; |
fp = fopen(”kojima.dat”, ”rt”); |
モードには、基本的に、読み込み”r”、書き込み”w”、追加”a”の3種類がある。 下記に一覧を示す。
使用するモード | モード | 補足説明 |
読み込み専用 | r | ファイルが存在しなければならない |
書き込み専用 | w | ファイルが存在するとそのファイルは消去されて新しく作成される |
読み書き両用 | r+ | ランダムファイルとして任意のレコードに対して読み書きができる |
w+ | ただし、任意のレコードを指定するには、fseek()関数を使用しな | |
ければならない | ||
書き込み(追加) | a | ファイルが存在すれば後ろに追加。なければ新規に作成される |
a+ | ||
その他 | t | テキスト(アスキー)ファイルの指定 |
b | バイナリファイルの指定 | |
ただし、バイナリファイルは、OSによってデータサイズが異なる | ||
ことがあるので、移植を考えた場合には推奨できない |
また、fopen()関数では、標準入出力をファイルポインタとして使用することが出来る。 表3.4に標準ファイルポインタの一覧を示す。
ファイルポインタ | 名称 | 補足説明 |
stdin | 標準入力 | fscanf(stdin) とscanf() は同じ機能 |
stdout | 標準出力 | fprintf(stdout) とprintf() は同じ機能 |
stderr | 標準エラー出力 |