|
32bit 환경과 64bit 환경에서의 메세지큐 차이점을 알고싶어요....ㅠ
기존에 32bit환경에서 사용하던 녀석이 64bit에서는 당연히 안되네요.
기존 int 형태의 mtype을 long으로 변경했고 정해진 레코드len을 초과, 그에따라 사용하는 레코드 값들이 변하는데 어떻게 잡아야하는지.. 막막하네요ㅠ
소켓통신에서 64bit환경에서 32bit환경이 연결되야 한다면
기존 long 타입의 변수들도 8byte로 넘어가기 때문에 4byte변수로 변경해야 할 것 같은데 그렇담 int로 선언했을때 문제가 생기지 않을지...
머리가 너무 복잡하네요ㅠ
머리가 탁 트일만한 피드백있으시다면 한소절 부탁드려요..
메시지큐의 차이보다는 메시지큐에 넣는 구조체의 길이와 포인트접근같은것이 일치 하지 않는 문제로 보이네요
전체적으로 sizeof 같은 명령어로 구조체 길이가 정확한지 체크를 해봐야 하지 않나 싶네요..
OS 마다 64비트 방식이 조금씩 달라서...구조체같은건 길이를 일일이 체크해서 확인해보셔야 할듯 합니다.
참고로 32비트는 long (4), int (4), short(2), char(1)이고, 64비트는 long(8), int(8 or 4), short(2), char(1) 이구여..
int를 8로 쓸지 4로 쓸지는 보통 컴파일 옵션가지고 구별합니다..(IBM aix 인 경우는 -q64 옵션 주면 8byte로 되져)
이거 우리나라말은 맞는거 같은데 세번 읽어도 뭔말인지 모르겠고;;;