1、消息队列的介绍

消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制,Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。

2、消息队列需要使用的API介绍

1、msgget函数

该函数用来创建和访问一个消息队列。它的原型为:

    int msgget(key_t, key, int msgflg);

与其他的IPC机制一样,程序必须提供一个键来命名某个特定的消息队列。msgflg是一个权限标志,表示消息队列的访问权限,它与文件的访问权限一样。msgflg可以与IPC_CREAT做或操作,表示当key所命名的消息队列不存在时创建一个消息队列,如果key所命名的消息队列存在时,IPC_CREAT标志会被忽略,而只返回一个标识符。

它返回一个以key命名的消息队列的标识符(非零整数),失败时返回-1.

2、msgsnd函数

该函数用来把消息添加到消息队列中。它的原型为:

 int msgsend(int msgid, const void *msg_ptr, size_t msg_sz, int msgflg);

msgid是由msgget函数返回的消息队列标识符。

linux c之通过消息队列实现进程通信相关推荐

  1. 【Linux】Linux进程间通信——共享内存/消息队列/守护进程

    文章目录 进程间通信--共享内存/守护进程 一, 共享内存 1. 共享内存概念 2. 共享内存使用 1. 共享内存使用步骤 2. 共享内存操作函数 3. 共享内存常用操作命令 4. 共享内存使用示例: ...

  2. linux进程间通信:POSIX 消息队列 ----异步通信

    在上一篇中linux进程间通信:POSIX 消息队列我们知道消息队列中在消息个数达到了队列所能承载的上限,就会发生消息的写阻塞. 阻塞式的通信影响系统效率,进程之间在通信收到阻塞时并不能去做其他事情, ...

  3. linux进程间通信:POSIX 消息队列

    文章目录 基本介绍 相关编程接口 编程实例 消息队列通信实例 消息队列属性设置实例 基本介绍 关于消息队列的基本介绍,前面在学习system V的消息队列时已经有过了解,linux进程间通信:syst ...

  4. linux 消息队列的单工通信,半双工通信

    目录 一 回顾 二 消息队列的单工通信 三 消息队列的半双工通信 一 回顾 1 通过 fgets函数实现输入指令 2 再通过 msgnsd 函数读取 值 3 最后通过 msgrcv函数获取 值 输出 ...

  5. Linux进程间通信四 Posix 消息队列简介与示例

    目录 1. Posix 消息队列简介 2. API接口 2.1 创建或打开消息队列 2.2 发送消息 2.3 接收消息 2.4 获取.设置消息队列属性 2.5 关闭消息队列 2.6 删除消息队列 2. ...

  6. Linux进程间通信(管道、消息队列、共享内存、信号、信号量)

    目录 Linux进程间通信概述 1.管道 无名管道(pipe) 有名管道(fifo) 2.消息队列(msg) 消息队列的通信原理 消息队列相关api 消息队列收发数据 键值生成 消息队列移除 3.共享 ...

  7. tp5 queue.php,tp5(think-queue)消息队列+supervisor进程管理实现队列常驻进程

    前言 传统的程序执行流程一般是 即时|同步|串行的,在某些场景下,会存在并发低,吞吐量低,响应时间长等问题.在大型系统中,一般会引入消息队列的组件,将流程中部分任务抽离出来放入消息队列,并由专门的消费 ...

  8. jmstemplate 获取队列id_学习Linux(38)消息队列

    消息队列.共享内存 和 信号量 被统称为 system-V IPC,V 是罗马数字 5,是 Unix 的AT&T 分支的其中一个版本,一般习惯称呼他们为 IPC 对象,这些对象的操作接口都比较 ...

  9. 【Linux】system V 消息队列 | system V 信号量(简单赘述)

    文章目录 1 . system V 消息队列(了解) 接口 查看消息队列 2.system V 信号量 (了解) 1.进程互斥等概念的理解 2.认识信号量 3. 接口 这两部分主要是了解即可,为后面学 ...

最新文章

  1. 函数指针--Nginx和Redis中两种回调函数写法
  2. 线性回归预测PM2.5值
  3. Silverlight初级教程-开发工具
  4. python之禅中文-Python之禅与翻译之美
  5. git 与github 命令行操作与控制
  6. primefaces_PrimeFaces Mobile入门
  7. 数据结构,Java实现递归回溯,寻找出迷宫路线,解决迷宫问题
  8. Android 系统使用USB OTG功能/打开USB Host API功能
  9. NB-IoT(9)---云平台对接及使用
  10. 程序竞赛中常用的C字符串函数
  11. gif一键抠图 在线_在线抠图网站,轻松搞定抠图,效果堪比PS!
  12. win10打开Android模拟器后电脑重启问题
  13. windows server 一键启用图片查看器
  14. SQL函数入门--统计函数+分组函数
  15. php在文本框显示图片,多张图片上传后在页面上可以显示图片,在文本框显示地址怎么解决啊...
  16. OpenGL(预备篇3)---OpenGL编程环境配置 vs2017篇---GLM---(自己动手系列)
  17. python对txt文本文件边读边写,同时读取和写入的方式修改文件
  18. D.E. Shaw:“股涨债跌”的幕后操手竟是各国央行?
  19. android 商城评价,打开应用商店对应用进行评价
  20. 主机调优20141226

热门文章

  1. iNeuLink硬件网关与iNeuOS工业互联网操作系统互联互通应用案例
  2. 微服务的终极目标,Mecha分布式运行时之Dapr
  3. Dotnet Core 优雅的命令行实现
  4. 【招聘(北京)】北京华光普泰生物招聘.NET软件开发
  5. 小米 华为都要造车?.NET高薪潮来了!(附招聘链接)
  6. .NET 6 Preview 2 发布
  7. BCVP开发者说第5期:QuartzCore.Blazor
  8. 日计不足涓滴成河-自定义响应结果格式化器
  9. ASP.NET Core分布式项目实战(运行Consent Page)--学习笔记
  10. 今天网站都变成灰色了,这其中是怎么实现的?