X86 code를 Sun Sparc code로?(endian문제)

익명 사용자의 이미지

안녕하세요?

제가 X86 linux에서 작성한 코드를 Sun Solaris가 작동하는 Sparc머신으로
옮겼는데요.
컴파일러는 양쪽다GCC입니다.
아시다시피 X86머신과 Sparc머신은 endian이 다르지 않습니까?
그래서 다음과 같은 코드를 짰을 경우

long a;

a = 0x01020304;

write(fh, (const void*)&a, sizeof(long));

X86머신과 Sparc머신은 디스크에 생긴 파일이 다르게 된다는 것이죠.

이것을 양쪽다 같게 하는 방법이 없을까요?

도와주세요......

익명 사용자의 이미지

big 이면 big

little 이면 little 로 .. 표준을 정하시는게 좋을겁니다.

그리고 나서.

big->little little->big 변환 함수를 만들어 사용하셔야 겠죠?..

익명 사용자의 이미지

htons(),hontl(), ntohs(), ntohl()같은 함수를 쓰시는 것도 도움이 될듯.
특히 네트웍 프로그램이면요...