Вопрос, наверное, платиновый, но я не нашёл на него ответа. Как правильно записать целое число в файл и прочитать его потом, да так, чтобы не быть зависимым от платформы?
В стандарте C описано, что целое может быть представлено в прямом и обратном порядках байт, а число со знаком аж тремя разными способами. Очевидно, что просто сделать
fwrite(&number, sizeof (number), 1, file);
будет чревато непереносимостью.
Если посмотреть, как этот вопрос решён в coreutils, то там можно обнаружить макрос, который при необходимости меняет порядок байт. Это самый правильный вариант? А как поступать с отрицательными?