Fwrite
fwriteは、C言語の標準入出力ヘッダーファイル <stdio.h> で宣言されている関数である。
主に、バイナリ形式のファイル出力に使われる。
形式
#include <stdio.h>size_t fwrite(void *buf, size_t size, size_t nmemb, FILE* stream);
戻り値は書き込んだ項目数である。
bufに格納されている大きさsizeの最大nmemb個の要素をstreamの指すストリームに書き込む。
もしstreamがテキストモードで開かれていれば、改行コードCRはCR+LFに置換される。
ただしその場合でも戻り値に影響はない。
コード例
ユーザーの入力を受け取り、バイナリモードで sample.dat に書き込んだ後、読み込んで表示する。
#include <stdio.h>#include <stdlib.h>int main(void){
    FILE* fp;
    double v;
    size_t len;

    printf("実数を入力してください\n");
    scanf("%lf", &v);

    /* sample.dat への書き込み */
    fp = fopen("sample.dat", "wb");
    if (fp == NULL) {
        fprintf(stderr, "sample.datを開けません\n");
        exit(-1);
    }
    len = fwrite(&v, sizeof(double), 1, fp); 
    if (len != 1) {
        fprintf(stderr, "sample.datへの書き込み失敗\n");
        exit(-1);
    }
    fclose(fp);

    /* sample.dat からの読み込み */
    fp = fopen("sample.dat", "rb");
    if (fp == NULL) {
        fprintf(stderr, "sample.datを開けません\n");
        exit(-1);
    }
    len = fread(&v, sizeof(double), 1, fp);
    if (len != 1) {
        fprintf(stderr, "sample.datからの読み込み失敗\n");
        exit(-1);
    }
    fclose(fp);
    printf("読み取った値:%f\n", v);

    return 0;}