빅 엔디안 인 네트워크에서 버퍼를 수신하고 있으며 리틀 엔디안 시스템에 있습니다. 시스템에서 사용하기 전에 버퍼를 되돌려 야합니까? 엔디안이 단일 형식에 대한 바이트 순서 만 뒤집을 지 또는 전체 버퍼에도 적용되는지 확실하지 않습니다.엔디안이 배열을 뒤집을 수 있습니까?
예를 들어, 네트워크에서 unsigned long
의 버퍼를 받고 있다고 가정 해 봅시다. 그리고 저는 리틀 엔디안 시스템을 사용하고 있습니다.
for(int i=0;i<size;i++)
system_buffer[i]=ntohl(network_buffer[i]);
내가 system_buffer를 사용하기 전에, 나는 또한 그것을 반대해야합니까 (그래서 마지막 요소는 첫 번째 요소 및 비자 반대가됩니다) : 코드는이 있을까? 또한
reverse_buffer(system_buffer);
, I는 unsigned char
의 배열을 수신하는 경우가있어, I 전혀 엔디안을 보상해야 하는가, 또는 그대로-I는 버퍼를 사용합니까?
감사합니다.
읽기 내용 : http : //commandcenter.blogspot.co.uk/2012/04/byte-order-fallacy.html – this