浅学进程间通信3(消息队列)

消息队列

Linux操作系统内核维护消息队列,应用层调用系统调用即可使用

System V 消息队列 API

c 复制代码
#include <sys/types.h> 
#include <sys/ipc.h> 
#include <sys/msg.h> 

创建消息队列 
key:唯一标识新创建的消息队列 
msgflg: 一些标志信息 
    IPC_CREAT:根据key判断对应的共享内存段是否存在,如果不存在则创建,如果存在则返回已经存在的共享内存段 
    IPC_EXCL: 和IPC_CREAT一起用,如果已经存在key对应的共享内存则失败 
int msgget(key_t key, int msgflg)

发送消息 
msqid: 消息队列标识ID 
msgp: 要发送的数据 
msgsz:发送消息的大小 
msgflg: IPC_NOWAIT(异步发消息) 
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg)

接收消息 
msqid: 消息队列标识ID 
msgp:要接收的数据 
msgsz:接收消息的大小
msgtype:等于 0, 那么读取消息队列中的第一条消息.
         大于 0, 那么读取消息队列中的第 msgtype 条消息 
         小于 0, 那么读取小于等于msgtype绝对值最小的 msgtype 的消息
msgflg: IPC_NOWAIT(异步收消息) 
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtype, int msgflg)
相关推荐
嵌入式-老费10 小时前
esp32开发与应用(用Python+PySide6解决上位机开发)
linux·单片机·嵌入式硬件
事已至此先睡覺吧10 小时前
(三)Linux 基础指令(二):基础常用的一些指令
linux·运维·服务器
ShineWinsu11 小时前
对于Redis:Redis的认识以及分布式系统的解析
linux·数据库·c++·redis·缓存·消息队列·分布式架构
Zenova EdgeOS11 小时前
Linux IO 监测:iotop 工业边缘排障实战
linux·边缘计算·工业网关·iotop·排障
Fcy64811 小时前
Linux下 传输层协议UDP详解(含底层源码解析)
linux·运维·udp
青梅味猪大肠11 小时前
【操作系统-24】双标志先检查
linux·运维·服务器
xiaoye-duck12 小时前
《Linux 网络编程》深入理解五种 IO 模型:从 IO 本质到非阻塞 IO 实战
linux·网络
程序员-Benothing12 小时前
Linux内核与模块管理:uname、lsmod、modprobe、sysct
linux·运维·数据库
嵌入式小能手12 小时前
飞凌嵌入式ElfBoard-Shell编程应用实例-使用WiFi拨号上网
linux·服务器·网络
..Dauntless..12 小时前
【Linux】环境变量
linux·运维·服务器