Czy ktoś wie o poleceniu, które informuje, czy system to Big Endian, czy Little Endian, czy też najlepszą opcją jest technika taka jak Perl lub ciąg poleceń?
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
od
metodą? To proste i działa wszędzie. Właśnie o tym myślałem przed przeczytaniem treści twojego pytania.lscpu
metoda jest tym, czego mógłbym się spodziewać.od
podejście powinno działać na większości otwartych systemów, nie tylko na Linuksie, jak w przypadku używanialscpu
. To, co jest „najlepsze”, zależy od okoliczności.Odpowiedzi:
lscpu
Te
lscpu
pokazy Command (między innymi):Systemy, o których wiadomo, że działają
Systemy, o których wiadomo, że nie działają
Dlaczego pozorne różnice między dystrybucjami?
Po wielu kopaniach dowiedziałem się, dlaczego. Wygląda na to, że wersja util-linux wersja 2.19 była pierwszą wersją, która zawierała funkcję, w której
lscpu
wyświetla dane wyjściowe raportujące Endianness systemu.Jako test skompilowałem zarówno wersję 2.18, jak i 2.19 na moim systemie Fedora 14, a wynik poniżej pokazuje różnice:
util-linux 2.18
util-linux 2.19
Powyższe wersje zostały pobrane ze strony kernel.org .
źródło
lscpu
nie wyświetla tej wartości, jednak robi to mój system Ubuntu 12.10. Jeśli nie masz nic przeciwko, mogę wziąć twoją odpowiedź i podzielić ją na sekcje dla różnych systemów i sposobów na zrobienie tego na każdym z nich.lscpu
celach informacyjnych działa również na Archlinux.Jedną metodą znalezioną w systemach Debian / Ubuntu jest uruchomienie tego polecenia:
To pokaże słowa małe lub duże w zależności od architektury, z której składa się twój system:
źródło
Używanie
python
:lub:
gdzie
1
jest dla małego endiana i00256
dla dużego endiana.Lub używając krótszej
perl
wersji:źródło
Rozwiązanie POSIX Shell & C:
źródło
Jeśli korzystasz z systemu, który nie ma
endian.h
:źródło