shared memory 관련 질문입니다~~
글쓴이: dark1023 / 작성시간: 수, 2009/12/30 - 12:59오후
제가 파일입출력방식을 공유메모리 방식으로 바꾸고 있는데
이런식으로 넣으면 계속 같은 주소값에 쓰레기값만 들어갑니다;;;
int output(int a, struct in_data *dt)
{
int i;
int shmid;
key_t key = 0x00000001;
char *memory;
char buf[1024];
shmid = shmget(key, SIZE_DATA, IPC_CREAT|0666);
memory = (char*)shmat(shmid, 0, 0);
dt = (struct in_data*)memory;
for(i=0; i<a; i++) {
if(a==0) {
printf("ÀúÀå½ÇÆÐ!!\n");
break;
}
else
sprintf(buf, "%s, %d, %s, %s\n", dt[i].name, dt[i].age, dt[i].sex, dt[i].res);
// printf("%s", buf);
strcpy(memory, buf);
}
printf("%s", buf);
printf("%s", memory);
return 0;
}이게 공유메모리에 저장하는부분 소스코드 입니다.
입력펑션에서 입력을 하면 dt로 들어가게되는데 그 값들을 공유메모리로 다시 올리려면 어떻게 해야하나요?
제가 짠 소스가 틀린건 알겠는데 어떤식으로 해야 하는지 잘 모르겠습니다;;
도와주세요;;;ㅜㅜ
Forums:


댓글 달기