메세지 큐 생성에서 무슨 permission같은 것이 있습니까?
글쓴이: indizarm / 작성시간: 수, 2003/11/12 - 11:43오전
메세지 큐 생성에서 무슨 permission같은 것이 있습니까?
예를 들어서 root가 아닌 다른 user로 한다면, 생성이 안된
다던가.
다음은 제가 작성한 것이 아닌 인터넷에서 긁어온 것입니다.
그리고 permission denied라는 에러를 만들어내는 code
입니다..
#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #include <sys/stat.h> struct msgbuf { long msgtype; char buf[512]; }; int main(int argc, char **argv) { key_t key_id; int i; struct msgbuf mybuf; int msgtype; key_id = msgget((key_t)1234, IPC_CREAT|0666); if(key_id == -1) { perror("msgget error : "); exit(0); } while(1) { if (msgrcv(key_id, (void *)&mybuf, sizeof(struct msgbuf), 1, 0) == -1) { perror("quit : "); exit(0); } } }
Forums:
혹시 키값이 중복되지 않으신가요.?
혹시 키값이 중복되지 않으신가요.?
ipcs
ipcs를 사용해서 message queue를 삭제 하시고 다시 실행하시면 될 겁니다.
good job
ipcs -q 이렇게 하면 아무것도 없습니다.그리고 msgctl
ipcs -q 이렇게 하면 아무것도 없습니다.
그리고 msgctl()로 지우기도 했고요
What a Cool Days!!!
저도 같은 에러가 계속 났는데
1) msgctl()로 생성돼있는 message queue들을 지웠고,
2) msgget()을 불러올 때 flag를 IPC_CREAT | 0666 으로 설정하니까 문제가 해결됐습니다!
참고로 이전에는 IPC_CREAT만 넣었었습니다.
댓글 달기