6

下面帖子中的解决方案对我不起作用。我收到错误消息“消息太长”。可能是什么问题? 如何在linux中使用POSIX API发送带有消息队列的整数?

如果我是正确的 apid_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”
“初始化使指针从整数而不进行强制转换”

4

2 回答 2

4

问题是我从来没有这样做过mq_unlink

于 2012-11-08T10:38:26.447 回答
1

您可能希望首先使用 mq_attr 设置最大消息大小和队列大小。有关 POSIX 队列的更多详细信息,请参阅这篇文章

于 2012-11-07T19:27:43.550 回答