Когда вы записываете в файл с помощью fwrite
, он читает необработанные байты, составляющие var
, и записывает их на диск.Это двоичное представление числа.
Если вы используете такой инструмент, как od
, он распечатает байты, содержащие файлы:
[dbush@db-centos7 ~]$ od -tx1 testfile
0000000 0a 00 00 00
0000004
Здесь вы можете видеть, что первый байт содержит значение 10, а следующие 3 содержат значение 0. Это говорит нам о том, что int
занимает 4 байта и хранится в формате с прямым порядком байтов, то есть младший значащий байт идет первым.
Если бы вместо этого вы использовали fprintf
для записи значения:
fprintf(fp, "%d\n", var);
Это записало бы текстовое представление в файл.Файл будет выглядеть примерно так:
[dbush@db-centos7 ~]$ cat testfile
10
[dbush@db-centos7 ~]$ od -tx1 testfile
0000000 31 30 0a
0000003
Здесь мы видим, что при печати файла отображается читаемый текст, а od
показывает нам коды ASCII для символов '1'
и '0'
,а также перевод строки.