Linux进程通信 - 消息队列
发布时间
阅读量:
阅读量
一、消息队列
-
消息队列本质上是一组消息的有序集合,可将其视为具有特定格式和优先级的记录。拥有写入权限的进程可以按照一定规则将新消息添加至队列中,而具备读取权限的进程则可以从队列中获取相应消息。消息队列在系统内核中持续存在。每个消息队列都包含一个对应的头部结构,该结构由struct msg_queue描述。在该头部信息中,涵盖了与该消息队列相关的诸多数据,例如键值、用户ID、组ID、当前存储的消息数量等,并且还记录了最近执行读写操作的进程ID。用户既可查阅这些信息,也可对其中部分内容进行设置。
-
全局数据结构struct ipc_ids msg_ids能够访问到每个消息队列头的第一个成员struct kern_ipc_perm的原因在于,在该结构体内部包含了一个key_t类型的成员变量key,而这一key值正是用于唯一标识一个特定的消息队列。
-
针对消息队列的操作主要分为以下三类:
a. 打开或创建一个新的消息队列
b. 对消息进行读取或写入操作
c. 获取或修改消息队列的相关属性
二、API函数
- 创建消息队列 -- msgget
函数原型:int msgget(key_t key, int msgflg);
所需头文件:#include <sys/types.h>
#include <sys/ipc.h>
#in
全部评论 (0)
还没有任何评论哟~
