进程间通信之Linux消息队列编程

消息队列

消息队列是一种以链表为结构组织的数据,存放在Linux内核中,是由各进程通过消息队列标识符来引用的一种数据传送方式。每个消息队列都有一个队列头,利用结构struct msg_queue来描述。队列头中包含了该消息队列的基本信息,包括消息队列键值、用户ID、组ID、消息数目等,甚至记录了最近对消息队列读写进程的PID。

消息队列的队列头存在于内核空间中,结构定义如下:

struct msg_queue
{
    struct ipc_perm q_perm;
    time_t q_stime;            //上一条消息的发送时间
    time_t q_rtime;            //上一条消息的接收时间
    time_t q_ctime;            //上一次修改时间
    unsigned long q_cbytes;    //当前队列中的字节数据
    unsigned long q_qnum;      //队列中的消息数量
    unsigned long q_qbytes;    //队列的最大字节数
    pid_t q_lspid;             //上一条发送消息的PID
    pid_t q_lrpid;             //上一条接收消息的PID
    struct list_head q_messages;
    struct list_head q_receivers;
    struct list_head q_senders;
};

结构msqid_ds用来设置或返回消息队列的信息,存在于用户空间中,结构定义如下:

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值