//There are no issues with endiannes for one byte values #include #include int main(void) { FILE *f1 = fopen("test1", "w"); FILE *f2 = fopen("test2", "w"); uint8_t data[] = {0xAB, 0xCD}; size_t ret = fwrite(data, 1, 2, f1); printf("I wrote %lu items\n", ret); // Not portable uint16_t x = 0xABCD; ret = fwrite(&x, 2, 1, f2); printf("I wrote %lu items\n", ret); fclose(f1); fclose(f2); return 0; }