CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): leehs (젠틀이)
날 짜 (Date): 2003년 7월 11일 금요일 오후 01시 41분 57초
제 목(Title): [Q] SUN에서 gcc 사용하여 컴파일시 질문


gcc를 이요하여 compile 시 segment error 가 발생합니다..

HEADER  *hp;
char    *p;

p = (HEADER *)buf;

    *((unsigned short*)p)++ = htons(T_A);
    *((unsigned short*)p)++ = htons(C_IN);
    *((unsigned int*)p)++   = htonl(expire);
    *((unsigned short*)p)++ = htons(4);
    *((unsigned int*)p)++   = addr;

여기서 
 *((unsigned short*)p)++ = htons(4); 부분이 alignment error가

발생하는것 같네요..

gdb로 잡아보면 Program received signal SIGSEGV, Segmentation fault.
   *((unsigned int*)p)++   = addr;

요케 나오네요..

이럴때 alignment 맞추기 위해서 gcc option으로 무얼 줘야 하는지..

아니면 코드를 수정하는게 나을지요..

참고로 DNS로 메시지를 만들어 보려려고 하는 코드입니다.

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.