【发布时间】:2011-10-10 03:57:55
【问题描述】:
我已经创建了一个消息队列,并且发送方部分成功创建并发送消息到消息队列中。
我使用IPC_PRIVATE 作为发送方的msgget() 的密钥。
现在我的问题是,在接收方的msgget() 中使用什么键?
在接收方使用IPC_PRIVATE 作为msgget() 中的key 不会收到消息并且失败。
我还要提一下,发送方部分的msgsnd()表示错误(返回-1),但是用perror()打印时,输出为Success,消息成功发送到消息队列,可以在终端使用 ipcs -q 命令可以看到。我不知道为什么会这样。
if(msgsnd(msqid,&msgp,88,IPC_NOWAIT) == 0)
{
perror("\nsend : msgsnd FAIL");
msgctl(msqid,IPC_RMID,buf);
return 1;
}
输出: 发送:msgsnd 失败:成功
【问题讨论】:
标签: c linux ipc message-queue