포인터를 사용하는데...정확하게 문제가 뭔지 모르겠습니다.
글쓴이: 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:
| 첨부 | 파일 크기 |
|---|---|
| 2.83 KB |
Forums:


댓글 달기