进程间通信之消息队列

首先来波基本语法

1、创建消息队列

消息队列是随着内核的存在而存在的,每个消息队列在系统范围内对应唯一的键值。要获得一个消息队列的描述符,

只需要提供该消息队列的键值即可,该键值通常由函数ftok返回。

key_t ftok(const char *pathname, int proj_id);

ftok函数根据pathname和proj_id这两个参数生成唯一的键值。

pathname:must refer to an existing, accessible file,在系统中一定要存在,且进程有访问权限。

proj_id:的取值范围为1-255 

ftok返回的键值可以提供给函数msgget,

msgget根据这个键值创建一个新的消息队列或者访问一个已存在的消息队列。

int msgget(key_t key, int msgflg);

参数key即为ftok函数的返回值。msgflag是一个标志参数。

以下是msgflg的可能取值:

IPC_CREAT:如果内核中不存在键值与key相等的消息队列,则新建一个消息队列;如果存在这样的消息队列,返回消息队列的描述符。

IPC_EXCL:和IPC_CREAT一起使用,如果对应键值的消息队列已经存在,则出错,返回-1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值