【C言語】fopen_sで使える開くモードの種類について解説

この記事では、C言語のプログラミング初心者向けに、fopen_s関数で使えるファイルを開く際のモードについて解説します。

テキストモードやバイナリモード、読み込みモード、書き込みモード、追記モードなど、各モードの特徴や使い方を詳しく説明します。

目次から探す

fopen_sで使える開くモード

C言語ではファイルを開く際に、fopen_s関数を使用できますが、ファイルを開く際のモードを指定することができます。

以下では、fopen_sで使える開くモードについて説明します。

読み込みモード

読み込みモードrでは、ファイルを読み取り専用で開きます。

バイナリファイルとして開く場合はrbにします。

読み取りモードでは、ファイルの内容を読み取ることはできますが、書き込むことはできません。


#include <stdio.h>
int main() {
    FILE* file;
    errno_t err;
    err = fopen_s(&file, "data.txt", "r");
    if (err == 0) {
        printf("ファイルを正常に開きました。\n");
        // ファイルを閉じる
        fclose(file);
    } else {
        printf("ファイルのオープンに失敗しました。\n");
    }
    return 0;
}

書き込みモード

書き込みモードwでは、ファイルを書き込み専用で開きます。

書き込みモードでは、ファイルに新しいデータを書き込むことができますが、既存のデータは上書きされます。

バイナリファイルとして開く場合はwbにします。


#include <stdio.h>
int main() {
    FILE* file;
    errno_t err;
    err = fopen_s(&file, "output.txt", "w");
    if (err == 0) {
        printf("ファイルを正常に開きました。\n");
        // ファイルを閉じる
        fclose(file);
    } else {
        printf("ファイルのオープンに失敗しました。\n");
    }
    return 0;
}

追記モード

追記モードaでは、ファイルを追記専用で開きます。

追記モードでは、既存のデータの末尾に新しいデータを追加することができます。

バイナリファイルとして開く場合はabにします。


#include <stdio.h>
int main() {
    FILE* file;
    errno_t err;
    err = fopen_s(&file, "log.txt", "a");
    if (err == 0) {
        printf("ファイルを正常に開きました。\n");
        // ファイルを閉じる
        fclose(file);
    } else {
        printf("ファイルのオープンに失敗しました。\n");
    }
    return 0;
}

読み込み・書き込み両方に対応した開き方

一度のファイルオープンでファイルの読み込み・書き込み両方行いたい場合は、r+w+のように+を末尾につけることで行なえます。

バイナリファイルの場合はrb+ wb+のように書きます。

読み書き両方行えるr+w+はどちらも同じ意味ですが、a+のみ意味が異なります。

a+は読み込みは先頭から、書き込みは末尾に追記していくモードになるので気をつけましょう。

以上が、fopen_sで使える開くモードの一覧です。

目次から探す