Liệu hexdump có tôn trọng sự tồn tại của hệ thống của nó không?


23

Trên máy của tôi, tôi nhận được đầu ra sau khi chạy các lệnh sau:

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

Đầu ra từ hexdump là endian nhỏ. Điều này có nghĩa là máy của tôi là endian nhỏ hay hexdump luôn sử dụng định dạng endian nhỏ?

Câu trả lời:


33

hexdumpTiện ích BSD truyền thống sử dụng tuổi thọ của nền tảng, do đó, đầu ra mà bạn thấy có nghĩa là máy của bạn là endian nhỏ.

Sử dụng hexdump -C(hoặc od -t x1) để có được đầu ra từng byte nhất quán bất kể độ bền của nền tảng.


5

Từ trang hướng dẫn:

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

Đầu ra của bạn là endian nhỏ (byte đáng kể đầu tiên), đây cũng là endian của kiến ​​trúc x86 và x86_64, mà bạn có thể đang sử dụng.


3
Có phải chỉ tôi hay trang man không đề cập đến bất cứ nơi nào mà nó đang coi "số lượng hai byte" là số nguyên? Tôi nghĩ rằng tôi đã uống thuốc điên ...
slashingweapon

@slashingweapon "số lượng dữ liệu đầu vào hai byte" uint16_t số nguyên.
Ruslan

"Hai byte" không giống như uint16_t trên một hệ thống nhỏ.
slashingweapon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.