gpt4 book ai didi

c - c : permission denied 中的消息

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:20 25 4
gpt4 key购买 nike

我正在尝试创建一个消息队列,然后向它发送一条消息。这是我尝试过的:

int main(){
int myMsgQueue;
struct msgStruct{
long mtype;
char mtext[LENGTH];
};
struct msgStruct myMsg;
myMsg.mtype = (long)getpid();
strcpy(myMsg.mtext,"Hey there"); //Setting the string of the message

if((myMsgQueue = msgget(IPC_PRIVATE,IPC_CREAT | IPC_EXCL)) == -1) //Creating the message queue
errore(__LINE__);
if(msgsnd(myMsgQueue,&myMsg,sizeof(myMsg) - sizeof(long),0) == -1) //Sending the message
errore(__LINE__);
if(msgctl(myMsgQueue,IPC_RMID,0) == -1) //Deleting the message queue
errore(__LINE__);
}

error 函数使用 strerror(errno) 简单地打印出解释错误的字符串。
但是,代码似乎不起作用:错误 在 msgsnd 返回 -1 时打印“Permission denied”。
我无法弄清楚问题是什么:我正在初始化消息队列和足够的消息结构,然后创建一条消息,其类型对应于进程的 pid 和对应于“嘿那里”的文本,然后发送消息。
我错过了什么?

最佳答案

阅读手册页 man page

A message queue identifier exists for the argument key, but operation permission as specified by the low-order 9 bits of msgflg would not be granted;

关于c - c : permission denied 中的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53365006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com