shmat할때...에러...
글쓴이: dracyula / 작성시간: 금, 2007/01/12 - 10:37오전
공유 메모리를 붙이려고...shmat를 사용하고 있는데요...
oltp_semid = semget(quesem,1,IPC_ALLOC|0666) ;
해서 id를 얻어오구....(quesem에는 0x5153454d 이란 값이 있습니다...)
oltp_memaddr = (char *)shmat(shmid,(void *)oltp_kernel_tbl->kernel_mem,0);
이렇게 쓰려고 합니다...
oltp_kernel_tbl->kernel_mem에는 메모리 주소를 지정해 주고요...
궁금한게...semget할때 IPC_ALLOC 인데...이건 뭐 할때 쓰는놈이죠?...
뭐 어쨋든...생성은 되니까...
그리고...shmat할때...계속 에러가 납니다....(void *)0으로 써주면 에러가 안납니다만...
꼭 지정해서 사용해야 하는 놈이기 때문에....
아시는분 제발 가르쳐 주세요...
Forums:
우선 꼭 지정해
우선 꼭 지정해 쓴다고 하시는 얘기가 잘 이해가 안간다는..
현재 shmat 에서 리턴하는 값은 주소값입니다....
the address of the attached shared memory segment
char *로 쓰이는 내용은 보통 하나의 byte를 지정하는 pointer일듯합니다.
그렇다면 long(i386 shmat_do는 long을 return합니다.)형의 주소와 문제가 있을듯합니다.
shmat()의 prototype에서도 void*인데. 이것은 뭐 주소체계가 다를수 있어서 일듯하네요.
에러에 대한 자세한 내막은 모르겠지만.
이부분의 문제가 아닐까 생각됩니다.
[KILL] 죽을각오로.........
[KILL] 죽을각오로.........
댓글 달기