Linux学习笔记-消息队列的接收
目录
接收消息
举个例子
接收消息
#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学习笔记-消息队列的接收相关推荐
- Linux学习笔记-消息队列的打开、创建、控制
目录 打开或创建消息队列 消息队列的控制 发送消息 举个栗子 打开或创建消息队列 #include <sys/msg.h> int msgget(key_t key, int flag); ...
- Linux学习笔记-消息队列概念
目录 System V IPC概念 System V IPC对象的访问 举几个例子 IPC对象的权限和所有者结构体 消息队列 消息队列属性 System V IPC概念 Unix系统存在信号.管道和命 ...
- 4.FreeRTOS学习笔记-消息队列
消息队列 传输的数据不定长 支持先进先出FIFO,同时支持后进先出LIFO 均支持超时机制. 每个消息队列都与消息空间在同一段连续的内存空间中 消息队列的大小是消息队列控制块大小+(单个消息空间大小 ...
- Linux学习笔记-无名管道,有名管道,消息队列
Linux学习笔记-无名管道,命名管道,消息队列 无名管道 特点 创建无名管道的函数 demo 命名管道 特点 创建命名管道的函数 demo 消息队列 特点 创建消息队列涉及到的函数 demo 无名管 ...
- 迅为嵌入式Linux学习笔记4——进程
迅为嵌入式Linux学习笔记4--进程 进程指的是正在运行的程序,是操作系统分配资源的最小单位. 进程ID 每个进程都有唯一的标识符,这个标识符就是进程ID,简称pid 进程间通信的方法 管道通信:分 ...
- 迅为嵌入式Linux学习笔记5——进程间通信
迅为嵌入式Linux学习笔记5--进程间通信 管道通信 无名管道 无名管道只能实现有亲缘关系的进程之间的通信,比如父子进程. pipe函数: #include <unistd.h> int ...
- Linux 学习笔记19 信号
Linux 学习笔记19 信号 信号 信号概述 为什么要是使用信号--为了实现进程的有序退出 信号是进程运行过程中,由自身产生或者由进程外部发来的消息.信号是硬件中断的软件模拟(软中断) signal ...
- Linux学习笔记(3)- 网络编程以及范例程序
Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...
- 嵌入式linux学习笔记--TCP通讯整理
嵌入式linux学习笔记–TCP通讯整理 之前的项目中使用到了比较多的tcp 通讯相关的知识,一直也没有进行整理,今天准备拿出时间好好的整理一下TCP通讯的整个过程.预计会整理linux和window ...
最新文章
- 就业丨速成班出来的AI人才,老板到底要不要?
- 容器数据卷网络基本配置
- 全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解)
- 系统安全攻防战:DLL注入技术详解
- 【内核驱动】 Kconfig简介
- mongodb查询内嵌文档
- Java8 Stream详解~ 提取/组合
- 【项目合作】指甲识别与实时渲染
- oracle mysql 线程数_oracle线程数更改
- 推销计算机英语作文,如何自我推销英语作文
- UVA10523 Very Easy !!!题解
- C语言——结构体数组的使用案例(如何判断两个矩形是否相交,其中一个是否包含在另外一个里面,点是否在矩形中)...
- 数据结构------递归+迷宫问题+最短路径问题解决思路
- 小米删除了文件无网络无服务器,两部小米手机无网络快速互传文件
- 【011】Excel宏编程相关封装模块(新建文件、关闭文件、新增/删除工作薄)_004_#VBA
- 一级域名二级域名区别
- H3C交换机配置教程及H3C S5810系列交换机光模块搭配
- linux系统安装视频播放器,Linux操作系统上安装Mplayer播放器的方法
- 重新认识融云,「不止即时通讯」
- anyRTC 重磅推出在线实时 K 歌解决方案