浅学进程间通信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)
相关推荐
无垠的广袤2 小时前
【工业树莓派 CM0 NANO 单板计算机】基于舵机和人脸识别的智能门禁系统
linux·python·opencv·yolo·ai·树莓派
ホロHoro2 小时前
数据结构非线性部分(二)review
linux·服务器·数据结构
wang6021252182 小时前
Git部署项目配置密钥-Linux系统
linux·运维·git
xlp666hub2 小时前
链表与它在 Linux 内核中的实现
linux·数据结构
倔强的石头1063 小时前
【Linux指南】进程控制系列(四)进程替换 ——exec 系列函数全解析与应用
linux·运维·bash
悾说3 小时前
xRDP实现Linux图形化通过Windows RDP访问Linux远程桌面
linux·运维·windows
tianyuanwo3 小时前
解决Anolis/CentOS 8下Python 3.11 SELinux模块缺失:从原理到实战的完整指南
linux·centos·python3.11
承渊政道3 小时前
Linux系统学习【Linux基础指令以及权限问题】
linux·服务器·学习
一个人听秋雨3 小时前
speedtest-x脚本优化
linux·运维