메세지 큐 생성에서 무슨 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만 넣었었습니다.
댓글 달기