Binary I/O stores bytes exactly as they appear in memory for a chosen value.

Binary Write

binary_write.c
#include <stdio.h>

int main(void) {
    int value = ;
    int readBack = 0;
    FILE *out = fopen("egtry_c17_binary_write.bin", "wb");
    int wrote = (int)fwrite(&value, sizeof(value), 1, out);
    fclose(out);

    FILE *in = fopen("egtry_c17_binary_write.bin", "rb");
    int read = (int)fread(&readBack, sizeof(readBack), 1, in);
    fclose(in);
    remove("egtry_c17_binary_write.bin");

    printf("wrote=%d read=%d value=%d\n", wrote, read, readBack);
    return 0;
}
#include <stdio.h>

int main(void) {
    int value = ;
    int readBack = 0;
    FILE *out = fopen("egtry_c17_binary_write.bin", "wb");
    int wrote = (int)fwrite(&value, sizeof(value), 1, out);
    fclose(out);

    FILE *in = fopen("egtry_c17_binary_write.bin", "rb");
    int read = (int)fread(&readBack, sizeof(readBack), 1, in);
    fclose(in);
    remove("egtry_c17_binary_write.bin");

    printf("wrote=%d read=%d value=%d\n", wrote, read, readBack);
    return 0;
}
#include <stdio.h>

int main(void) {
    int value = ;
    int readBack = 0;
    FILE *out = fopen("egtry_c17_binary_write.bin", "wb");
    int wrote = (int)fwrite(&value, sizeof(value), 1, out);
    fclose(out);

    FILE *in = fopen("egtry_c17_binary_write.bin", "rb");
    int read = (int)fread(&readBack, sizeof(readBack), 1, in);
    fclose(in);
    remove("egtry_c17_binary_write.bin");

    printf("wrote=%d read=%d value=%d\n", wrote, read, readBack);
    return 0;
}
write count `fwrite` reports how many items were written.
round trip Reading the value back confirms the same item was stored.