进程间通信(九)——System V 消息队列

System V 消息队列

通信方法

  • 支持不同进程之间以消息(message)的形式交换数据
  • 发送者
    • 获取消息队列的ID(IPC标识符)
    • 将数据放入一个带有标识的消息结构体,发送到消息队列
  • 接收者
    • 获取消息队列的ID
    • 将指定标识的消息从消息队列中读出,然后进一步后续处理

消息队列

  • 编程接口
    • key_t ftok(const char *pathname, int proj_id);
    • int msgget(key_t key, int msgflg);
      • 创建或打开一个消息队列
      • 首先既有消息队列中搜索与指定key对应的队列,返回该对象的标识符
      • 若没找到,msgflg指定了IPC_CREAT,则创建一个队列,并返回IPC标识符
    • int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
      • 发送消息到消息队列
    • ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);
      • 从消息队列中接收信息
    • int msgctl(int msqid, int cmd, struct msqid_ds *buf);
      • IPC_STAT: 获取消息队列的属性信息
      • IPC_SET: 设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值