Чи поважає 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
Це лише я, чи сторінка man ніде не згадує, що вона розглядає "двобайтові величини" як цілі числа? Я думав, що я приймаю божевільні таблетки ...
Slashhingweapon

@slashingweapon "двобайтова кількість вхідних даних" є uint16_t цілим числом.
Руслан

"Два байти" не є тим самим, що uint16_t у системі малої ендіанки.
рубанняweapon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.