Utilities

hexdump 是否尊重其係統的字節順序?

  • August 26, 2019

在我的機器上執行這些命令時,我得到以下輸出:

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

hexdump 的輸出是 little-endian。這是否意味著我的機器是 little-endian,還是 hexdump 總是使用 little-endian 格式?

傳統的 BSDhexdump實用程序使用平台的字節序,因此您看到的輸出意味著您的機器是小字節序的。

使用hexdump -C(or od -t x1) 獲得一致的逐字節輸出,而不管平台的字節序。

從手冊頁:

-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.

您的輸出是 little-endian(最低有效字節優先),這也是您可能正在使用的 x86 和 x86_64 架構的字節序。

引用自:https://unix.stackexchange.com/questions/55770