消息队列作用:

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

消息队列之函数介绍:

头文件:<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

IPC之——消息队列相关推荐

  1. 专题 12 IPC之消息队列

    1.概述 消息队列是内核地址空间中的内部链表,通过Linux内核在各个进程之间传递内容.消息顺序地发送到消息队列中,并以几种不同的方式从队列中获取,每个消息队列可以用IPC标识符唯一的进行标识.内核中 ...

  2. linux 消息队列_Linux进程间通信第六讲 标准IPC之消息队列

    来源CSDN: CSDN-专业IT技术社区-登录​blog.csdn.net 一.概念和原理 消息队列是另一种标准IPC,当然也大概遵循大部分标准 消息队列,它是存放消息(数据)的队列,而队列是先进先 ...

  3. System V IPC之消息队列

    消息队列由消息队列id来唯一标识 消息队列就是一个消息的列表 用户可以在消息队列中添加消息 读取消息 消息队列可以按照类型来发送和接收消息       消息队列使用步骤 打开/创建消息队列 msgge ...

  4. Linux IPC 进程间通信——消息队列message

    消息队列是消息的连接表,存储在内核中.本实例主要实现消息队列方式进行进程间通信,接收端收到消息之后,立马转发给发送端:发送端发出消息之后,立马监听接收端回馈的消息,实现一个双向通信示例. 一.示例 发 ...

  5. Linux IPC POSIX 消息队列

    模型: #include<mqueue.h> #include <sys/stat.h> #include <fcntl.h> mq_open() //创建/获取消 ...

  6. System V IPC POSIX IPC(一):消息队列

    System V IPC & POSIX IPC(一):消息队列 消息队列允许进程之间以消息的形式交换数据,是一种常见的进程之间的通信机制. 1. 消息队列的创建 System V IPC: ...

  7. linux 消息对lie_Linux进程间通信之消息队列总结

    一.系统V IPC 三种系统V IPC:消息队列.信号量以及共享内存(共享存储器)之间有很多相似之处. 每个内核中的 I P C结构(消息队列.信号量或共享存储段)都用一个非负整数的标识符( i d ...

  8. linux 进程通信 消息队列

    详解linux进程间通信-消息队列 前言:前面讨论了信号.管道的进程间通信方式,接下来将讨论消息队列. 一.系统V IPC 三种系统V IPC:消息队列.信号量以及共享内存(共享存储器)之间有很多相似 ...

  9. 嵌入式Linux系统编程学习之二十四消息队列

    文章目录 前言 一.msgget 函数 二.msgsnd 函数 三.msgctl 函数 补充 前言   消息队列与 FIFO 很相似,都是一个队列结构,都可以有多个进程往队列里面写信息,多个进程从队列 ...

最新文章

  1. php怎么实现自动售货,PHP自动化售货发卡网源码+教程
  2. SecondarySort 原理
  3. 物联网产品:你需要知道的9种智能家居产品
  4. 数据结构 线性存储 -- 栈 讲解
  5. Action类中通过ServletActionContext来获取web资源
  6. 数据库系统的三级模式结构知识笔记
  7. 由c#事件监听、回调函数引发观察者模式
  8. springboot 数据库假面_Spring Boot实战:数据库操作
  9. 2.2 决策树原理与算法——python实战
  10. gerber文件如何转为PCB文件
  11. Ubuntu系统安装ghostscript seq2logo
  12. jspm体检信息管理系统毕业设计(附源码、运行环境)
  13. 水量调节大师外挂___安卓版
  14. 计算机做课程表教程,初学表格制作教程 初学者如何制作课程表
  15. 如何解决移动硬盘无法格式化?两招方法教会你
  16. jpress连接不上mysql_JPress安装部署超详细文档
  17. 运营商开始悄悄火拼5G价格战,19元套餐开始涌现
  18. 使用easypoi操作excel
  19. linux安装完mysql没有服务_Linux中安装mysql之后 mysql服务不能启动
  20. suma++[代碼分析一]: 主入口visualizer.cpp

热门文章

  1. facenet训练自己的数据_基于SSD与Facenet的人脸识别
  2. 办公技巧:Excel日常高频使用技巧,赶快收藏吧!
  3. 系统测试:单元测试相关知识笔记
  4. 成为优秀程序员应该具备的8个特质
  5. 几个高逼格 Linux 命令!
  6. NLog日志框架使用探究
  7. 怎样保护计算机连接线,一根网线把电脑烧了:雷雨天如何保护家电?
  8. maven找到mysql 连接池_在Tomcat6.0+MySQL5.0环境下配置和使用数据库连接池
  9. java Math 方法
  10. java 中 if与while的区别