A fixed-size record can be written and read as one binary item.

Fixed Record

fixed_record.c
#include <stdio.h>

struct Score {
    int id;
    int points;
};

int main(void) {
    int bonus = ;
    struct Score original = {42, 80 + bonus};
    struct Score loaded = {0, 0};

    FILE *out = fopen("egtry_c17_record.bin", "wb");
    fwrite(&original, sizeof(original), 1, out);
    fclose(out);

    FILE *in = fopen("egtry_c17_record.bin", "rb");
    fread(&loaded, sizeof(loaded), 1, in);
    fclose(in);
    remove("egtry_c17_record.bin");

    printf("id=%d points=%d\n", loaded.id, loaded.points);
    return 0;
}
#include <stdio.h>

struct Score {
    int id;
    int points;
};

int main(void) {
    int bonus = ;
    struct Score original = {42, 80 + bonus};
    struct Score loaded = {0, 0};

    FILE *out = fopen("egtry_c17_record.bin", "wb");
    fwrite(&original, sizeof(original), 1, out);
    fclose(out);

    FILE *in = fopen("egtry_c17_record.bin", "rb");
    fread(&loaded, sizeof(loaded), 1, in);
    fclose(in);
    remove("egtry_c17_record.bin");

    printf("id=%d points=%d\n", loaded.id, loaded.points);
    return 0;
}
#include <stdio.h>

struct Score {
    int id;
    int points;
};

int main(void) {
    int bonus = ;
    struct Score original = {42, 80 + bonus};
    struct Score loaded = {0, 0};

    FILE *out = fopen("egtry_c17_record.bin", "wb");
    fwrite(&original, sizeof(original), 1, out);
    fclose(out);

    FILE *in = fopen("egtry_c17_record.bin", "rb");
    fread(&loaded, sizeof(loaded), 1, in);
    fclose(in);
    remove("egtry_c17_record.bin");

    printf("id=%d points=%d\n", loaded.id, loaded.points);
    return 0;
}
record layout A struct groups fields that are stored together as one item.
read back The loaded record fields can be used just like the original fields.