当前位置: 首页> 汽车> 维修 > 网页字体尺寸设计_在线设计平台用户规模_怎么申请网站_新郑网络推广

网页字体尺寸设计_在线设计平台用户规模_怎么申请网站_新郑网络推广

时间:2025/7/11 22:53:32来源:https://blog.csdn.net/m0_72563041/article/details/130293222 浏览次数: 0次
网页字体尺寸设计_在线设计平台用户规模_怎么申请网站_新郑网络推广

前言

上节Linux学习,我们学习了System V的共享内存,本节我们学习System V 的另一种通信方式 — 消息队列

在这里插入图片描述

文章目录

  • 前言
  • 一. 消息队列的原理
  • 二.创建消息队列
  • 二. 查看消息队列
  • 三. 删除消息队列
  • 四. 读写数据
  • 结束语

一. 消息队列的原理

消息队列的本质同共享内存一样,也是在内存中有一个又一个的数据块,但是操作系统对其先描述再组织的方式不同,是将这些数据块像队列的元素那样管理,并且标识是哪个进程创建

在这里插入图片描述

二.创建消息队列

创建消息队列的函数是msgget()
在这里插入图片描述

同共享内存的参数和返回值一样。

  1. 第一个参数是用来标识队列,操作系统通过一系列算法生成的key值
    在这里插入图片描述
    ftok函数生成key值,用pathname和proj_id生成一个冲突较小的key值

  2. 第二个参数是创建方式,有两种创建方式:
    IPC_CREAT:没有就创建,有则返回msqid,队列id
    IPC_CREAT | IPC_EXCL:没有就创建,有则报错
    还可以 | 上消息队列的权限

  3. 返回值是msqid,队列id

二. 查看消息队列

查看消息队列的命令ipcs -q
在这里插入图片描述

key:消息队列的key值
msqid:消息队列的队列id
owner:创建该消息队列的用户
perms:权限
used-bytes:使用的字节数
messages:消息数

三. 删除消息队列

指令删除ipcrm -q 消息队列id
函数删除msgctl()
在这里插入图片描述
具体操作同共享内存的shmctl()

msqid:消息队列的id
cmd:具体操作,使用位图的方式传入,删除是IPC_RMID
buf:其他操作,比如IPC_STAT获取消息队列属性需要传入的消息队列的结构体

四. 读写数据

写数据的函数是msgsnd()
读数据的函数是msgrcv()
在这里插入图片描述

msqid:消息队列的队列id
msgp:读写数据使用的结构体
msgsz:读写数据的大小
msgflg:一般为0(当消息队列满时,会阻塞,等到可以再写入消息为止)
msgtyp:标识是哪个进程写入的数据。优先接收某进程的第一个消息

读写数据的结构体如下
在这里插入图片描述

mtype:标识该数据块是哪个进程写入
mtext:柔性数组,存储读写数据

结束语

感谢你的阅读

如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。
在这里插入图片描述

关键字:网页字体尺寸设计_在线设计平台用户规模_怎么申请网站_新郑网络推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: