在我的机器上运行这些命令时,我得到以下输出:
$ echo foos > myfile
$ hexdump myfile
6f66 736f 000a
hexdump 的输出是小端字节序。这是否意味着我的机器是小端字节序,或者 hexdump 始终使用小端字节序格式?
答案1
传统的 BSDhexdump
实用程序使用平台的字节序,因此您看到的输出意味着您的计算机是小字节序。
使用hexdump -C
(或od -t x1
) 可以获得一致的逐字节输出,而不管平台的字节顺序如何。
答案2
从联机帮助页:
-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 架构的字节序。