Advertisement

Linux进程通信 - 消息队列

阅读量:

一、消息队列

  1. 消息队列本质上是一组消息的有序集合,可将其视为具有特定格式和优先级的记录。拥有写入权限的进程可以按照一定规则将新消息添加至队列中,而具备读取权限的进程则可以从队列中获取相应消息。消息队列在系统内核中持续存在。每个消息队列都包含一个对应的头部结构,该结构由struct msg_queue描述。在该头部信息中,涵盖了与该消息队列相关的诸多数据,例如键值、用户ID、组ID、当前存储的消息数量等,并且还记录了最近执行读写操作的进程ID。用户既可查阅这些信息,也可对其中部分内容进行设置。

  2. 全局数据结构struct ipc_ids msg_ids能够访问到每个消息队列头的第一个成员struct kern_ipc_perm的原因在于,在该结构体内部包含了一个key_t类型的成员变量key,而这一key值正是用于唯一标识一个特定的消息队列。

  3. 针对消息队列的操作主要分为以下三类:

a. 打开或创建一个新的消息队列
b. 对消息进行读取或写入操作

c. 获取或修改消息队列的相关属性

二、API函数

  1. 创建消息队列 -- msgget

函数原型:int msgget(key_t key, int msgflg);

所需头文件:#include <sys/types.h>
#include <sys/ipc.h>
#in

全部评论 (0)

还没有任何评论哟~