以下帖子中的解决方案对我不起作用。我收到错误消息“消息太长”。可能是什么问题? How to send integer with message queue with POSIX API in linux?
如果我是正确的,pid_t
被定义为int
。我做了以下事情:
struct mq_attr attr;
attr.mq_flags = 0;
attr.mq_maxmsg = 1000;
attr.mq_msgsize = sizeof(pid_t);
mqd_t queue = mq_open(unique_name, O_RDWR|O_CREAT, 0600, &attr);
mqd_t result = mq_send(queue, &pid, sizeof(pid), 0);
我在编译时遇到mq_send
:
“从不兼容的指针类型传递'mq_send'的参数2” “初始化使得指针来自整数而没有强制转换”
答案 0 :(得分:3)
问题是我从未做过mq_unlink
。
答案 1 :(得分:1)
您可能希望先使用mq_attr设置最大邮件大小和队列大小。有关POSIX队列的更多详细信息,请参阅this post。