目录

接收消息

举个例子


接收消息

#include <sys/msg.h>
ssize_t msgrcv(int msgqid, void *ptr, size_t nbytes, long type, int flag);
//返回值:成功返回消息的数据部分长度,出错返回-1

参数:

msgqid:消息队列的ID;

ptr:指向存放消息的缓存;

nbytes:消息存储的大小,不包括mtype的大小。计算方式;

nbytes = sizeof(struct mymesg) - sizeof(long)

type:消息类型

type == 0:获取消息队列中第一个消息;

type > 0:获取消息队列中类型为type的第一个消息;

type < 0:获取消息队列中小于或等于type绝对值的消息。

flag:0或者IPC_NOWAIT

举个例子

代码如下:

#include <sys/msg.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>typedef struct{long type;int start;int end;
}MSG;int main(int argc, char *argv[]){if(argc < 3){printf("usage: %s key type\n", argv[0]);exit(1);}key_t key = atoi(argv[1]);long type = atoi(argv[2]);int msq_id;if((msq_id = msgget(key, 0777)) < 0){perror("msgget error");}//从消息队列中接收指定类型的消息MSG m;if(msgrcv(msq_id, &m, sizeof(MSG) - sizeof(long), type, IPC_NOWAIT) < 0){perror("msgrcv error");}else{printf("type: %d start: %d end:%d\n", m.type, m.start, m.end);}exit(0);
}

删除:

Linux学习笔记-消息队列的接收相关推荐

  1. Linux学习笔记-消息队列的打开、创建、控制

    目录 打开或创建消息队列 消息队列的控制 发送消息 举个栗子 打开或创建消息队列 #include <sys/msg.h> int msgget(key_t key, int flag); ...

  2. Linux学习笔记-消息队列概念

    目录 System V IPC概念 System V IPC对象的访问 举几个例子 IPC对象的权限和所有者结构体 消息队列 消息队列属性 System V IPC概念 Unix系统存在信号.管道和命 ...

  3. 4.FreeRTOS学习笔记-消息队列

    消息队列 传输的数据不定长 支持先进先出FIFO,同时支持后进先出LIFO 均支持超时机制. 每个消息队列都与消息空间在同一段连续的内存空间中 消息队列的大小是消息队列控制块大小+(单个消息空间大小 ...

  4. Linux学习笔记-无名管道,有名管道,消息队列

    Linux学习笔记-无名管道,命名管道,消息队列 无名管道 特点 创建无名管道的函数 demo 命名管道 特点 创建命名管道的函数 demo 消息队列 特点 创建消息队列涉及到的函数 demo 无名管 ...

  5. 迅为嵌入式Linux学习笔记4——进程

    迅为嵌入式Linux学习笔记4--进程 进程指的是正在运行的程序,是操作系统分配资源的最小单位. 进程ID 每个进程都有唯一的标识符,这个标识符就是进程ID,简称pid 进程间通信的方法 管道通信:分 ...

  6. 迅为嵌入式Linux学习笔记5——进程间通信

    迅为嵌入式Linux学习笔记5--进程间通信 管道通信 无名管道 无名管道只能实现有亲缘关系的进程之间的通信,比如父子进程. pipe函数: #include <unistd.h> int ...

  7. Linux 学习笔记19 信号

    Linux 学习笔记19 信号 信号 信号概述 为什么要是使用信号--为了实现进程的有序退出 信号是进程运行过程中,由自身产生或者由进程外部发来的消息.信号是硬件中断的软件模拟(软中断) signal ...

  8. Linux学习笔记(3)- 网络编程以及范例程序

    Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...

  9. 嵌入式linux学习笔记--TCP通讯整理

    嵌入式linux学习笔记–TCP通讯整理 之前的项目中使用到了比较多的tcp 通讯相关的知识,一直也没有进行整理,今天准备拿出时间好好的整理一下TCP通讯的整个过程.预计会整理linux和window ...

最新文章

  1. 就业丨速成班出来的AI人才,老板到底要不要?
  2. 容器数据卷网络基本配置
  3. 全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解)
  4. 系统安全攻防战:DLL注入技术详解
  5. 【内核驱动】 Kconfig简介
  6. mongodb查询内嵌文档
  7. Java8 Stream详解~ 提取/组合
  8. 【项目合作】指甲识别与实时渲染
  9. oracle mysql 线程数_oracle线程数更改
  10. 推销计算机英语作文,如何自我推销英语作文
  11. UVA10523 Very Easy !!!题解
  12. C语言——结构体数组的使用案例(如何判断两个矩形是否相交,其中一个是否包含在另外一个里面,点是否在矩形中)...
  13. 数据结构------递归+迷宫问题+最短路径问题解决思路
  14. 小米删除了文件无网络无服务器,两部小米手机无网络快速互传文件
  15. 【011】Excel宏编程相关封装模块(新建文件、关闭文件、新增/删除工作薄)_004_#VBA
  16. 一级域名二级域名区别
  17. H3C交换机配置教程及H3C S5810系列交换机光模块搭配
  18. linux系统安装视频播放器,Linux操作系统上安装Mplayer播放器的方法
  19. 重新认识融云,「不止即时通讯」
  20. anyRTC 重磅推出在线实时 K 歌解决方案

热门文章

  1. Oracle SQL Loader的详细语法
  2. Python能做的事情很多别的编程语言也能做,python将会是昙花一现吗?看看这位程序员怎么说~
  3. 今天的几经沧桑的飞鸽传书2011
  4. 夫学须静也freeeim
  5. 如何升软件开发项目的利润
  6. 盘点那些让程序员目瞪口呆的奇葩Bug,最后一个什么梗
  7. 50条大牛C++编程开发学习建议
  8. 瓜州县电子政务工程_甘肃瓜州:“厕所革命”带来乡村新生活
  9. 华为交换机配置syslog发送_华为/H3C Syslog配置
  10. C++中拷贝构造函数