【发布时间】:2019-04-08 18:01:48
【问题描述】:
我在windows中使用boost进程间消息队列,但是我遇到了一个问题,当max_msg_size不等于buffer_size时会抛出错误,我的部分代码如下:
//process A
message_queue::remove(name);
m_MQ = std::make_unique<message_queue>(create_only, name,2000,300);
m_MQ->try_send(buffer, buffer_size, 0);
//process B
m_MQ = std::make_unique<message_queue>(open_only, name);
m_MQ->try_receive(buffer, buffer_size, recvd_size, priority);
在这种情况下,如果buffer_size 不等于 300,它将抛出boost::interprocess_exception::library_error,我无法再传递可变长度缓冲区。
非常感谢。
【问题讨论】:
标签: c++ boost ipc message-queue boost-interprocess