博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IPC之——消息队列
阅读量:5319 次
发布时间:2019-06-14

本文共 1020 字,大约阅读时间需要 3 分钟。

消息队列作用:

  可以用于两个没有联系的进程间通信,创建一个消息队列类似于打开了一个文件,两个不同的进程都可以进行操作

消息队列之函数介绍:

头文件:<sys/type.h> <sys/ipc.h> <sys/msg.h>

1.msgget(key_t,int msgflg)://创建消息队列  返回值为消息队列ID号

  key_t:键值,内核通过key来生成消息队列(如0333,055等),当设置成IPC_PRIVATE时为私有键,key为0,默认创建一个新的消息队列

  msgflg:IPC_CREAT或IPC_EXCL,以及权限,如(msgid=msgget(033,IPC_CREAT|0600)

2.msgctl(int msqid,int cmd,struct msqid_ds *buf)

  cmd:IPC_STAT(查看消息队列信息)   ,IPC_RMID(删除一个消息队列)

  buf:是一个结构体,根据cmd而考虑加什么参数,如果是删除可以写NULL,如果是获取信息就写一个结构体变量

3.msgsnd(int msqid,const void *msgp,size_t msgsz,int msgflag)//发送消息,成功返回0,失败返回-1

  msgp:可以将消息封装成一个结构体,也可以是以一个数组,但是前八为必须是消息类型

  msgsz:消息长度指有效数据,不包括type;

  msgflag:IPC_NOWAIT,消息满时不阻塞 ,立即返回

      0:无要求,满时阻塞

4.msgrcv(int msgid,void *msgp,size_t msgsz,long msgtyp,int msgflg)//接收消息

  msgp:同上,可以是结构体也可以是数组

  msgsz:消息的数据长度,不包括type

  msgtyp:表示取的消息类型:

    0:表示取第一个消息

    num:表示取消息类型为num的消息(num为正整数)

    -num:如(-4),表示取type<=4(-4绝对指)消息,如果有多个成立的消息,从小到达,从        前到后取。。。作用(用于优先级别的控制)

  msgflg: 0表示无特殊操作选项

      IPC_NOWAIT:非阻塞

 

转载于:https://www.cnblogs.com/edan/p/8900444.html

你可能感兴趣的文章
zhlan--Python中的字典遍历方法 & 字典取值
查看>>
【iHMI43 4.3寸液晶模块】demo例程(版本1.02)发布
查看>>
【资料下载区】【iCore、 iCore2相关资料】更新日期2017/1/11
查看>>
ResNet,DenseNet
查看>>
我想学前端动画-CSS之transition
查看>>
WiFi攻击的三种方式
查看>>
团队作业4----第一次项目冲刺(Alpha版本)4.29
查看>>
JS 获取当前页面地址 获取当前页面名称
查看>>
[Kafka] - Kafka内核理解:Message
查看>>
Python+selenium自动化测试环境安装
查看>>
web服务器控件
查看>>
按小时计算两个时间的差值,结果精确到分钟
查看>>
高并发解决方案--负载均衡
查看>>
ecshop 商城开发
查看>>
python——基础知识
查看>>
php--phpstudy更新数据库版本后,无法一键启动
查看>>
configParser模块
查看>>
git
查看>>
LeetCode 476. Number Complement
查看>>
ffmpeg安装
查看>>