Уважает ли hexdump порядок своей системы?

23

На моей машине я получаю следующий вывод при запуске этих команд:

$ echo foos > myfile
$ hexdump myfile
6f66 736f 000a

Вывод из hexdump является прямым порядком байтов. Означает ли это, что моя машина имеет формат с прямым порядком байтов или в hexdump всегда используется формат с прямым порядком байтов?

Кори Кляйн
источник

Ответы:

33

Традиционная hexdumpутилита BSD использует порядковый номер платформы, поэтому вывод, который вы видите, означает, что ваша машина имеет младший порядок.

Используйте hexdump -C(или od -t x1), чтобы получить последовательный побайтный вывод независимо от порядкового номера платформы.

Жиль "ТАК - перестань быть злым"
источник
5

Из справочной страницы:

 -x      Two-byte hexadecimal display.  Display the input offset in hexa‐
         decimal, followed by eight, space separated, four column, zero-
         filled, two-byte quantities of input data, in hexadecimal, per
         line.

...

 If no format strings are specified, the default display is equivalent to
 specifying the -x option.

Ваш вывод имеет младший порядок (сначала младший байт), что также является порядком байтов архитектур x86 и x86_64, которые вы, вероятно, используете.

Деннис Каарсемакер
источник
3
Это только я, или страница руководства нигде не упоминает, что она рассматривает «двухбайтовые величины» как целые числа? Я думала, что принимаю сумасшедшие таблетки ...
рубя
@slashingweapon "двухбайтовое количество входных данных" является uint16_t целым числом.
Руслан
«Два байта» - это не то же самое, что uint16_t в системе с прямым порядком байтов.
Слабое