浅学进程间通信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)
相关推荐
Coder个人博客18 小时前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
Doro再努力21 小时前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
wypywyp21 小时前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
Doro再努力21 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene21 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.21 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧21 小时前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮1 天前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
XiaoFan0121 天前
免密批量抓取日志并集中输出
java·linux·服务器
souyuanzhanvip1 天前
ServerBox v1.0.1316 跨平台 Linux 服务器管理工具
linux·运维·服务器