有谁知道一个报告系统是Big Endian还是Little Endian的命令,还是最好的选择是使用Perl或一串命令的技术?
佩尔
# little
$ perl -MConfig -e 'print "$Config{byteorder}\n";'
12345678
# big
$ perl -MConfig -e 'print "$Config{byteorder}\n";'
87654321
od | awk
# little
$ echo -n I | od -to2 | awk 'FNR==1{ print substr($2,6,1)}'
1
# big
$ echo -n I | od -to2 | awk 'FNR==1{ print substr($2,6,1)}'
0
参考文献
@Gilles-真的没什么,感觉有点像黑客(至少对我来说)。的确,它似乎可以在其他系统(例如Solaris + AIX)上移植,但是似乎应该更明确地确定系统的字节序,例如32位与64位,因此我对此感到有些惊讶。 t。更新的
—
slm
lscpu
方法更符合我的期望。
实际上,字节序比单词大小更容易确定,因为您将很难找到既不是小尾数也不是大尾数的平台(至少对于整数,浮点数是另一回事),而存在很多混合在32位和64位之间(CPU,内核,用户区,给定进程)。
—
吉尔(Gilles)'所以
@Gilles-是的,因为我主要是在Solaris或Linux上长大的,所以我对世界的看法可能会减弱。没有那么多。
—
slm
该
—
MattBianco 2014年
od
方法应该适用于大多数开放系统,而不仅限于Linux,使用using就是这种情况lscpu
。因此,什么是“最佳”取决于情况。
od
方法有什么问题?它很简单,可以在任何地方使用。这是我在阅读您的问题的正文之前想到的。