누구든지 시스템이 Big Endian인지 Little Endian인지보고하는 명령을 알고 있습니까? 아니면 Perl 또는 일련의 명령을 사용하여 이와 같은 기술을 사용하는 것이 가장 좋습니다.
펄
# little
$ perl -MConfig -e 'print "$Config{byteorder}\n";'
12345678
# big
$ perl -MConfig -e 'print "$Config{byteorder}\n";'
87654321
od | 어 wk
# 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 비트와 같이 좀 더 명확하게 결정되어야하는 것처럼 보였으므로 조금 놀랐습니다. 티. 더 새로운
—
slm
lscpu방법은 내가 기대할 수있는 것입니다.
엔디안은 실제로 단어 크기보다 결정하기가 쉽습니다. 작은 엔디안이나 빅 엔디안 (최소한 정수, 부동 소수점은 다른 문제)이 아닌 플랫폼을 찾는 데 어려움을 겪기 때문에 많은 혼합이 있습니다. 32 비트와 64 비트 사이 (CPU, 커널, 사용자 영역, 지정된 프로세스)
—
Gilles 'SO- 악마 그만해'
@Gilles-그렇습니다. 제가 주로 Solaris 나 Linux로 자랐기 때문에 세상에 대한 저의 견해는 아마 미미할 것입니다. 그 이상은 아닙니다.
—
slm
이
—
MattBianco
od접근 방식은 리눅스뿐만 아니라 대부분의 개방형 시스템에서 작동해야합니다 lscpu. "가장 좋은"것은 상황에 따라 다릅니다.
od방법에 어떤 문제가 있습니까? 간단하고 어디서나 작동합니다. 그것은 당신의 질문의 본문을 읽기 전에 내가 생각한 것입니다.