gpt4 book ai didi

c++ - 如何通过 boost::interprocess::message 队列传递复杂对象 ( std::string )

转载 作者:太空狗 更新时间:2023-10-29 20:01:05 24 4
gpt4 key购买 nike

有没有人有一些示例代码显示序列化 std::string 的管道,通过 boost::interprocess::message_queue 发送它并再次取出它?

最佳答案

您需要序列化您的数据,因为 boost::interprocess::message_queue 在字节数组上运行。如果您所有的消息都是字符串,只需执行以下操作:

size_t const max_msg_size = 0x100;
boost::interprocess::message_queue q(..., max_msg_size);

// sending
std::string s(...);
q.send(s.data(), s.size(), 0);

// receiving
std::string s;
s.resize(max_msg_size);
size_t msg_size;
unsigned msg_prio;
q.receive(&s[0], s.size(), msg_size, msg_prio);
s.resize(msg_size);

关于c++ - 如何通过 boost::interprocess::message 队列传递复杂对象 ( std::string ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3424058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com