使用mq_send发送int

时间:2012-11-07 19:20:56

标签: queue posix

以下帖子中的解决方案对我不起作用。我收到错误消息“消息太长”。可能是什么问题? 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”   “初始化使得指针来自整数而没有强制转换”

2 个答案:

答案 0 :(得分:3)

问题是我从未做过mq_unlink

答案 1 :(得分:1)

您可能希望先使用mq_attr设置最大邮件大小和队列大小。有关POSIX队列的更多详细信息,请参阅this post