不同类型的进程间消息队列
创始人
2025-01-09 07:30:23
0

可以使用结构体定义不同类型的消息,并用一个整数类型的标识符表示消息类型。然后利用消息类型来区分不同类型的消息,具体实现代码如下:

// 消息类型枚举 enum MessageType { Type1, Type2, Type3 };

// 定义消息结构体 struct Message { MessageType type; // 不同消息类型对应的消息体可以有不同的结构 union { struct { int value1; int value2; } type1Data; struct { char str[20]; } type2Data; struct { float value3; int value4; } type3Data; } data; };

// 写入消息 void writeToMessageQueue(MessageType type, void* data) { // 创建或打开 IPC 消息队列 int queueId = msgget(key, 0666 | IPC_CREAT);

// 构造消息 Message message; message.type = type; memcpy(&message.data, data, sizeof(message.data));

// 发送消息 msgsnd(queueId, &message, sizeof(message.data), 0); }

// 读取消息 bool readFromMessageQueue(MessageType type, void* buffer, size_t bufferSize) { // 打开 IPC 消息队列 int queueId = msgget(key, 0666);

// 读取指定类型的消息 Message message; if (msgrcv(queueId, &message, sizeof(message.data), type, 0) == -1) { return false; }

// 拷贝消息数据到输出缓冲区 memcpy(buffer, &message.data, std::min(bufferSize, sizeof(message.data)));

return true; }

// 使用示例 int main() { // 发送 Type1 类型的消息 Message type1Message; type1Message.data.type1Data = {42, 69}; writeToMessageQueue(Type1, &type1Message.data);

// 读取 Type2 类型的消息 Message type2Message;

相关内容

热门资讯

透视透视!拱趴大菠萝自动计算机... 透视透视!拱趴大菠萝自动计算机器人(透视)AI教程(2022已更新)(哔哩哔哩)该软件可以轻松地帮助...
透视苹果版!aapoker透视... 透视苹果版!aapoker透视脚本(透视)透视脚本下载(确实真的是有挂);1、首先打开aapoker...
透视脚本!约局吧辅助器(透视)... 透视脚本!约局吧辅助器(透视)科技教程(2025已更新)(哔哩哔哩);1、约局吧辅助器ai辅助优化,...
透视软件!aapoker脚本怎... 透视软件!aapoker脚本怎么用(透视)插件(果然存在有挂);1、aapoker脚本怎么用系统规律...
透视玄学!哈糖大菠萝怎么开挂(... 透视玄学!哈糖大菠萝怎么开挂(透视)详细教程(2020已更新)(哔哩哔哩)1、起透看视 哈糖大菠萝怎...
透视有挂!佛手大菠萝有挂吗(透... 透视有挂!佛手大菠萝有挂吗(透视)细节方法(2021已更新)(哔哩哔哩);1、佛手大菠萝有挂吗系统规...
透视总结!aapoker透视怎... 透视总结!aapoker透视怎么用(透视)辅助(原来存在有挂)1)aapoker透视怎么用辅助挂:进...
透视智能ai!pokemmo手... 透视智能ai!pokemmo手机版修改器(透视)德州教程(2024已更新)(哔哩哔哩)1、玩家可以在...
透视数据!aapoker插件(... 透视数据!aapoker插件(透视)透视脚本入口(真是是有挂)运aapoker插件辅助工具,进入游戏...
透视ai!大菠萝免费辅助(透视... 透视ai!大菠萝免费辅助(透视)新2025版(2026已更新)(哔哩哔哩)1)大菠萝免费辅助辅助挂:...