fwrite
возвращает количество записанных элементов.Таким образом, если все в порядке
std::array<int, 4> vals{1,2,3,4};
auto n = fwrite(vals.data(), sizeof(int), vals.size(), stream);
n
равно 4. Теперь предположим, что n
равно 3. Гарантируется ли тогда, что (при условии LE и четырехбайтовых целых чисел) последовательность
0x010000000 0x020000000 0x030000000
Написано или последнее усеченное значение может быть усечено, поэтому вывод
0x010000000 0x020000000 0x030000000 0x04