누구든지 시스템이 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
방법에 어떤 문제가 있습니까? 간단하고 어디서나 작동합니다. 그것은 당신의 질문의 본문을 읽기 전에 내가 생각한 것입니다.