当前位置: > 财经>正文

Linux系统编程之进程间通信方式:消息队列 银行里保险柜叫什么

2023-08-24 04:03:01 互联网 未知 财经

Linux系统编程之进程间通信方式:消息队列

同一个键(key)值可以保证是同一个消息队列,同一个消息队列标示符才能保证不同的进程可以相互通信,同一个消息类型才能保证某个进程取出是对方的信息。

键(key)值

System V 提供的进程间通信机制需要一个 key 值,通过 key 值就可在系统内获得一个唯一的消息队列标识符。key 值可以是人为指定的,也可以通过 ftok() 函数获得。

需要的头文件:

#include

#include

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

功能:

获取键(key)值

参数:

pathname: 路径名

proj_id: 项目ID,非 0 整数(只有低 8 位有效)

返回值:

成功:key 值

失败:-1

消息队列的创建

所需头文件:

#include

int msgget(key_t key, int msgflg);

功能:

创建一个新的或打开一个已经存在的消息队列。不同的进程调用此函数,只要用相同的 key 值就能得到同一个消息队列的标识符。

参数:

key: ftok() 返回的 key 值

msgflg: 标识函数的行为及消息队列的权限,其取值如下:

IPC_CREAT:创建消息队列。

IPC_EXCL: 检测消息队列是否存在。

位或权限位:消息队列位或权限位后可以设置消息队列的访问权限,格式和open() 函数的 mode_t 一样(open() 的使用请点此

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。