C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス fread

🔧 入出力 ・ stdio.h ・ C89

fread の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

どんな関数か

ストリームから固定サイズのデータブロックを複数個読み込む。バイナリファイルの読み込みに使い、戻り値は実際に読み込めた要素数で、要求数より少ない場合はEOFかエラーを意味する。 読み込んだバイト列をそのまま構造体へキャストする場合は、処理系依存のバイト順やパディングに注意する。

使用例

#include <stdio.h>
int main(void) {
    FILE *fp = fopen("data.bin", "rb");
    int buf[4];
    if (fp) {
        size_t n = fread(buf, sizeof(int), 4, fp);
        printf("read %zu items\n", n);
        fclose(fp);
    }
    return 0;
}

つまずきやすい注意点

⚠️ 戻り値が要求した個数より少ない場合、feof/ferrorで原因(終端かエラーか)を区別する必要がある。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

fread と一緒に使う関数

fwriteメモリ上のデータブロックを指定個数だけストリームへ書き込む。バイナリ出力の基本関数で、構造体配列をそのままファイル化する… fopenファイルを開いてストリームを得る。モード文字列("r"読込/"w"書込/"a"追記、"b"でバイナリ)を指定する。失敗時… feof直前の入力操作がファイル終端に達したかどうかを調べる。まだ終端に達していないのに次の読み取りを先読みして初めてEOFにな…

同じ分類(入出力)の関数

fclose feof ferror fflush fgetc fgets fopen fprintf fputc fputs fscanf fseek ftell fwrite getchar gets_s

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る