간단한건데 이것좀 해결해 주세요...;;;

gunny97의 이미지

#define MAXBUF 1024

char buff[MAXBUF];
char temp[MAXBUF];
char *packet;

======중략======

for ( ; ; ) {

n=read(fd,buff,MAXBUF); // 1분마다 패킷 받는놈 (라인단위로 7줄인가 옵니다)

==== 중략 =====

packet=strcat(temp,buff); // 하나의 패킷으로 합치는넘

if(리드에서 읽어온 버퍼중에 end란 글자가 있으면)

packet을 출력하고 packet을 초기화 하고 싶은데

잘 안되네요... 1분후에 오는 패킷내용엔 새로온 패킷만

있어야 하는데 1분전에 보내온 패킷까지 갖고 있네요

packet=NULL한다음에 1분후에 패킷을 받아도 마찬가지로

1분전의 패킷을 갖고 있네용;;

시간이 지날수록 패킷이 점점 쌓여만 가네요... 1분단위로 출력하고 초기화하고

다시 1분후에 보내온 패킷을 라인단위로 받었다가 한패킷으로 출력할려는데

아무래도 temp란 놈한테 계속 붙여나가는거 같아서

temp를 초기화 시키려는데 배열을 중간에 초기화 하려면

어떻게 해야 하나요? temp=NULL이라고 해동 잘못된 할당이라고

나오네요...
}

mrchu의 이미지

확실한거

memset(temp, 0, MAXBUF);

strcat만 쓰신다면, 더 쉬운거

temp[0] = 0;
gunny97의 이미지

정말 감사합니다. 해결되었네요 ^^;