【C言語】ファイル処理のFILE *fpの意味とは?

C言語でファイル操作の勉強をしていると必ずといっていいほど出てくるFILE *fp

頑張った理解しようとしてるけど、いまいちFILE *fpについてよくわかっていない人も多いのではないでしょうか。

そこで今回は、ファイル操作の時に必ずといっていいほど出てくるFILE *fpについて解説していきます。

目次から探す

FILE *fpとは

FILE *fpの意味と役割

C言語において、ファイル処理を行う際には、FILE型のポインタ変数であるfpを使用して紹介されていることが多い。

FILEはFILE型のことを指していて、fpは変数名です。FILE型はポイント変数として使用することが普通であり、ポイント変数として宣言する時に必要な*が変数名の戦闘についています。

変数名は何でもいいので、FILE *fileでもいいですし、FILE *config_fのようにしても問題ありません。

このポインタを使用することで、ファイルのオープン、クローズ、読み書きなどの操作を行うことができます。

  • ファイルのオープン:fopen()関数を使用して、ファイルをオープンし、fpにそのポインタを格納します。
  • ファイルのクローズ:fclose()関数を使用して、ファイルをクローズします。

これにより、ファイルへのアクセスが終了します。

  • ファイルへの読み書き:fscanf()fprintf()などの関数を使用して、ファイルからの読み込みやファイルへの書き込みを行います。

以下に、FILE *fpの使用例を示します。

#include <stdio.h>
int main() {
    FILE *fp; // ファイルポインタ変数の宣言
    // ファイルのオープン
    fp = fopen("sample.txt", "r");
    if (fp == NULL) {
        printf("ファイルをオープンできませんでした。\n");
        return 1;
    }
    // ファイルからの読み込み
    char buffer[256];
    fscanf(fp, "%s", buffer);
    printf("ファイルから読み込んだ文字列:%s\n", buffer);
    // ファイルのクローズ
    fclose(fp);
    return 0;
}

上記の例では、fopen()関数を使用してsample.txtというファイルを読み込みモードでオープンし、そのポインタをfpに格納しています。

その後、fscanf()関数を使用してファイルから文字列を読み込み、printf()関数を使用して読み込んだ文字列を表示しています。

最後に、fclose()関数を使用してファイルをクローズしています。

入門書などで紹介されるサンプルコードではFILE *fpのように、一目見ただけでは何のファイルを操作している変数なのか分かりませんが、実用する時はFILE *buf_file FILE *f_outputのように分かりやすい変数名をつけるようにしてください。

正しく使用することで、ファイルの読み書きやクローズなどの操作を行うことができます。

目次から探す