hexdumpはシステムのバイト順序を尊重しますか?

hexdumpはシステムのバイト順序を尊重しますか?

マイコンピュータでこのコマンドを実行すると、次の結果が表示されます。

$ 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アーキテクチャのエンディアンです。

関連情報