目录

  • 一 回顾
  • 二 消息队列 的概述
  • 1 msgget函数
  • 2 system函数
  • 3 msgctl函数

一 回顾

1 创建的有名管道时候 并不会产生fifo 而是在调用open函数 的时候才会
2 通过两个无血缘关系的进程 分别对有名管道读和写
3 读的时候没有数据 是因为有名管道没有数据

二 消息队列 的概述


消息的队列就是消息的链表  存放在内核态中
1 特定格式就是以链表的方式存在
2 每个节点都可以作为发送和接收的中间过渡方式。
3 因为链表的灵活 读取顺序可以打乱
4 并且每个链表都有独立的标识符 用于区分类型

1 msgget函数



看不不清楚的话

成功返回 id
失败 返回-1
key的参数

#include<sys/stat.h>
#include<sys/types.h>
#include<sys/msg.h>
#include<stdio.h>int main()
{int res;res=msgget(IPC_PRVATE,0755);if(res==-1){printf("msgget is error\n");//不成功 提示 errorreturn -1;}printf("msgget is sueecss ID is %d\n",res);//成功返回 idreturn 0;}
./a.out 之后
ipcs -q 查看队列 情况


正常是从0开始 因为我之后试过了 所以不是零开始
再./a.out 之后
返回的 id 值应该累加1
队列也是


感觉这样很麻烦 使用 sytem 函数可以解决

2 system函数

 system函数 的 形参  就是一条附加的 指令 也就是 在执行下载代码的同时查看队列情况。

警告 不用 理会 直接 继续
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/msg.h>
#include<stdio.h>int main()
{int res;res=msgget(IPC_PRVATE,0755);if(res==-1){printf("msgget is error\n");return -1;}printf("msgget is sueecss ID is %d\n",res);system("ipcs -q");return 0;}

3 msgctl函数

用这个实现删除的功能
删除指定队列
比如 94
94 为第一个参数 即为msggt函数返回值
cmd :设置为删除消息队列
*buff: 不需要权限  为 NULL
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/msg.h>
#include<stdio.h>int main()
{int res;res=msgget(IPC_PRVATE,0755);if(res==-1){printf("msgget is error\n");return -1;}printf("msgget is sueecss ID is %d\n",res);system("ipcs -q");msgctl(94,IPC_RMID,NULL);     system("ipcs -q");return 0;}
gcc xxx.c
./a.out

94 不存在 验证 成功了

linux的消息队列的创建和实现相关推荐

  1. Linux进程间通信--消息队列(Message queuing)

    今天我们来谈一谈Linux进程间通信的方式之一消息队列 我们先来看看关于消息队列的定义: 1.消息队列是消息的链表,存放在内核中并由消息队列标识符表示. 2.消息队列提供了一个从一个进程向另一个进程发 ...

  2. linux c 消息队列简介

    消息队列和共享内存.信号量一样,同属 System V IPC 通信机制.消息队列是一系列连续排列的消息,保存在内核中,通过消息队列的引用标识符来访问.使用消息队列的好处是对每个消息指定了特定消息类型 ...

  3. linux扩充消息队列,Linux关于消息队列的使用分享

    今天完成消息队列的使用. 消息队列类似FIFO,但是可以实现随机查询. 主要函数:msgget,msgsnd,msgrcv,msgctl 实验实现两个进程之间的通信. 一个发送,一个接受.并不需要额外 ...

  4. android自定义队列,Android 消息机制(一)消息队列的创建与循环的开始 Looper与MessageQueue...

    写在前面 本文基于Android 7.1.1 (API 25)的源码分析编写 与之前的触摸事件分发机制分析的文章一样,Android系统机制的分析中关键的一环就是事件消息的处理.之前也说过,Andro ...

  5. Linux进程间通信——消息队列

    2019独角兽企业重金招聘Python工程师标准>>> 下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处.有关命名管道的更多内容可以参阅我的另一篇文章 ...

  6. Linux安装消息队列IBM MQ 7.5开发版安装配置详解

    消息队列IBM MQ 7.5开发版安装配置详解 文章目录 消息队列IBM MQ 7.5开发版安装配置详解 前言 一.什么是IBM MQ? 二.安装前准备 1.安装前准备 2.安装MQ Server 3 ...

  7. linux 消息对lie_详解linux进程间通信-消息队列

    前言:前面讨论了信号.管道的进程间通信方式,接下来将讨论消息队列. 一.系统V IPC 三种系统V IPC:消息队列.信号量以及共享内存(共享存储器)之间有很多相似之处. 每个内核中的 I P C结构 ...

  8. Linux中消息队列的用法

    一.什么是消息队列 消息队列,Unix的通信机制之一,可以理解为是一个存放消息(数据)容器.将消息写入消息队列,然后再从消息队列中取消息,一般来说是先进先出的顺序.可以解决两个进程的读写速度不同(处理 ...

  9. linux进程间通信--消息队列相关函数(ftok)详解

    ftok 消息队列.信号灯.共享内存常用在Linux服务端编程的进程间通信环境中.而此三类编程函数在实际项目中都是用System V IPC函数实现的.System V IPC函数名称和说明如下表15 ...

  10. linux 修改消息队列大小

    环境:red hat5 linux消息队列的配置文件为: /etc/sysctl.conf ,里面: msgmax: 一条最大消息的字节数 msgmnb: 一个消息队列总共最大字节数 而我的系统这2个 ...

最新文章

  1. pacman 查询_pacman包管理常用命令
  2. 对象特性-构造函数和析构函数
  3. 探索JAVA并发 - 悲观锁和乐观锁
  4. 元素、属性、标题、段落、文本格式化
  5. hbase操作,创建命名空间,创建hbase表,添加数据,删除数据,通过RowKey获取数据,扫描数据,获取所有的表,获取ColumnFamily,删除表,获取hbase命名空间
  6. linux find命令mtime/atime/ctime +n -n n 全网最正确的总结
  7. 【英语学习】【WOTD】gargantuan 释义/词源/示例
  8. Android 系统(67)---android apk 的root 权限和USB adb 权限的区别
  9. 是什么让它3年融资破4亿?神策背后的探索与巨变
  10. jpadao层继承什么_实木复合地板特点是什么
  11. SDL2源代码分析5:更新纹理(SDL_UpdateTexture())
  12. JVM 大厂面试都会问,都会这么问,你能顶住么?
  13. 黑马程序员 Python学习笔记之多文件项目的演练
  14. 自己做量化交易软件(45)小白量化实战18--直接使用通达信自编指标公式进行分析绘图和回测
  15. Gitlab配置ssh key
  16. 征信为民守初心!《征信业管理条例》颁布十周年
  17. Spring - MySql实现高可用架构之MHA
  18. python爬取QQ音乐免费歌曲 2020.7.26
  19. 从业4-证券投资基金的监管
  20. 客厅计算机笔记本cpu,自己装一台客厅迷你小电脑,我很幸运避开数个大坑

热门文章

  1. NetApp 存储阵列 AFF A 系列——可提供屡获殊荣的速度和响应能力,满足性能敏感性工作负载的需求
  2. pthread之条件变量pthread_cond_t
  3. liteide+g:Goland多版本管理
  4. 华为g660获取解锁码
  5. Java代码如何翻译成机器语言
  6. 黑马程序员---visual studio 快捷键大全
  7. 基于PHP+Web+Mysql的在线问卷调查系统
  8. JAVA之MD5加密工具类
  9. Poker2  简单配置(方便于vim党)
  10. 学习Java8这一篇就够了