linux-----9----键值生成及消息队列移除

本文介绍了Linux环境下如何生成键值并使用ftok函数获取消息队列ID,以及如何通过msgctl函数移除消息队列,避免内核中过多的消息队列造成的问题。在get和send进程中,详细阐述了消息队列的创建、写入和读取过程。运行get进程会因消息队列为空而堵塞,直到send进程写入内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

消息队列流程:

首先,在get进程中,
1.写一个消息队列的结构体,(这个样式是Linux提供的样板,可以就这样用),
2.创建一个用来插入消息队列的结点(结构体)。
3.索引一个消息队列,键值通过ftok函数获得,通过msgrcv函数获取这个消息队列的内容。
4.在内核中除去这个队列,以免过多消息队列出现。

在send进程中
1.写一个消息队列的结构体,(这个样式是Linux提供的样板,可以就这样用),
2.创建一个用来插入消息队列的结点(结构体)。
3.索引一个消息队列,键值通过ftok函数获得,通过msgrcv函数获取这个消息队列的内容。
4.实例化一个结构体,把要写入的信息写进去结构体的成员mtext中去,把这个结构体写入消息队列。

运行get后,消息队列中没有能够读取到的东西,会堵塞,直到send内容后才能读取到东西。
————————————————
版权声明:本文为优快云博主「木下 似水」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/yanshimufeng/article/details/115409277

前面说了,key被写死,key的索引要去内核当中找到相关的ID队列,返回队列的ID,0x1234很死板,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追着希望跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值