같은 라이브러리에서 호출한 함수를 사용했지만, 다른 결과가 나올때 의심할만한 사항은..???
글쓴이: 심용희 / 작성시간: 토, 2006/05/27 - 3:01오후
음.. 라이브러리에서 제공하는 한 함수를 사용하여 shared memory에 메모리를 할당받았는데,
세그먼트 사이즈가 틀리게 나오는 황당한 일을 겪고 있습니다.
A라는 library에서 shared memory에 환형큐를 할당받는 함수가 있어서,
B프로그램에서도 사용하고,C 프로그램에서도 사용하고 있습니다.
그런데, B에서 만든 shared memory사이즈와 C에서 만든 shared memory사이즈가 달라지는 문제가 발생하였습니다.
A라는 library에서 만들어지는 shared memory queue는 고정 사이즈거든요.
B프로그램과 C프로그램에서 컴파일 옵션은 모두 같고, 모두 64bit로 컴파일을 합니다.
B와 C 프로그램에 약간의 차이가 있다면, B프로그램에서는 alignment를 강제로 맞추고 있고 C에서는 그런 작업이 없습니다.
그러나, A라는 라이브러리의 내부에서 8바이트 얼라인을 지켜서 shared memory에 큐 구조체를 만들고 있기때문에 얼라인 문제는 아닌듯 보입니다.
어떤 경우에 제가 지금 처한 상황과 비슷한 결과가 나오나요?
Forums:
댓글 달기