浅学进程间通信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)
相关推荐
wuminyu3 分钟前
Linux内核线程调度与虚拟线程调度机制系统级深度剖析
java·linux·c语言·jvm·c++
诸葛李4 分钟前
linux 配置
linux·运维·服务器
程序员老赵13 分钟前
Docker 部署 Rocky Linux:轻松搭建 RHEL 兼容企业级基础镜像平台
linux·后端·docker
rest10241 小时前
对ebpf的理解(3)
linux
AR-26710-2 小时前
Linux Day1——环境搭建与基础指令
linux
爱笑鱼2 小时前
Android 系统启动机制(七):进入 SystemServer.main() 以后,system_server 还是一个空进程吗?
android·linux
王的宝库2 小时前
Linux 性能优化入门
linux·学习
Ruiery3 小时前
Linux 6.6内核 PCIe 深度解析(九):复位机制 — 从 FLR 到 Secondary Bus Reset 的降级链
linux·运维·服务器
学烹饪的小胡桃3 小时前
WGCLOUD支持哪些告警方式
linux·运维·服务器·网络·安全
墨有6664 小时前
#Linux系统命令行操作指南
linux