C ++ вопрос о форматах файлов и OD - PullRequest
2 голосов
/ 24 мая 2010

У меня есть следующий простой код:

ofstream output("test");
output << 'a';

Когда я делаю восьмеричный дамп файла, я получаю это:

0000000 000141
0000001

Я вижу, что 000141 (в базе 8) имеет ширину 8 бит, а 0000001, вероятно, EOF. Какой первый байт из всех 0 и почему он там? Я знаю, что это ноль, это ASCII но какова его цель?

1 Ответ

1 голос
/ 24 мая 2010

Это не имеет ничего общего с C ++ (за исключением исходного кода, который показывает, что у нас есть файл длиной 1 с 'a'), вы, вероятно, должны были пометить этот linux или hexdump, потому что он выглядит какмне нравится вывод инструмента linux hd / hexdump с использованием восьмеричного вывода.

См. эту статью Википедии для получения дополнительной информации.

РЕДАКТИРОВАТЬ: Ах, я пропустил название вопроса,Так что это od , восьмеричный "брат" hd.

В первом столбце показаны смещения файлов (7 цифр, шестнадцатеричные), как сказал Джеймс.Если файл будет длиннее, это будет более очевидно.

...