포인터를 사용하는데...정확하게 문제가 뭔지 모르겠습니다.
글쓴이: uamyd5279 / 작성시간: 목, 2006/02/23 - 5:17오후
테스트용 소켓 프로그램인데...
리눅스에서는 정상적으로 작동을 합니다만,
SUN에서는
st_usrdef 의 포인터의 특정 멤버를 참조할 때
SIGSEGV가 떨어지네요.
테스트용 소스상으로는 이상이 없는데...
유독 원번 소스만 그러네요.
원인을 모르겠습니다...
원본 첨가합니다.
테스트를 하기 위한 소스는 여기에 붙여 넣겠습니다.
#include<stdio.h> #include "mytcp.h" int main() { char sztmp[124]; st_usrdef *att; memset( sztmp, 0x00, 124 ); att = (st_usrdef*)sztmp; printf("MAGIC:%lld\n",MAGIC_NUMBER); att->llMagicNo = MAGIC_NUMBER; printf("ulli : %lld\n", att->llMagicNo); return 0; }
mytcp.h는 아래와 같습니다.( 첨부해 놓았습니다. )
#ifndef __TCP_TEST_H__ #define __TCP_TEST_H__ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<errno.h> #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<arpa/inet.h> #define READ_BUF_LEN 255 #define CURR_BUF_LEN READ_BUF_LEN - 16 #define MAX_BUF_LEN 2048 #define MAGIC_NUMBER 0x1234567890abc typedef struct _st_user_defined_sock { long long llMagicNo; unsigned int dTotlen; char reserved[4]; char szBody[CURR_BUF_LEN]; }st_usrdef, *pst_usrdef; #endif /*__TCP_TEST_H__*/
File attachments:
첨부 | 파일 크기 |
---|---|
tcp_test.tar.gz | 2.83 KB |
Forums:
댓글 달기