kmsgget 内核服务
用途
获取消息队列标识。
语法
参数
| 项 | 描述 |
|---|---|
| key | 指定 IPC_PRIVATE 的值或由 ftok 子程序(或类似算法)构建的 IPC 密钥。 |
| 消息 | 指定通过对以下一个或多个值进行逻辑 OR 运算来构造 消息 参数:
|
| msqid | 一个引用参数,如果 kmsgget 内核服务成功,将返回一个有效的消息队列 ID。 |
描述
kmsgget 内核服务会返回消息队列标识符,该标识符由与指定的 key 参数值相关联的 msqid 参数指定。 kmsgget 内核服务为 内核模式下的用户模式进程提供的功能,与 msgget 子程序为 用户模式下的内核进程或用户模式进程执行的功能相同。 kmsgget 服务可由内核模式下的用户模式进程或内核进程调用。 内核进程也可以调用 msgget 子程序来提供相同的功能。
执行环境
kmsgget 内核服务只能从 进程环境中调用。
返回值
| 项 | 描述 |
|---|---|
0 |
指示成功完成。 姆斯基德 参数被设置为有效的消息队列标识。 |
如果 kmsgget 内核服务失败,则 msqid 参数无效,返回代码为以下四个值之一:
| 项 | 描述 |
|---|---|
EACCES |
指示存在 钥匙 参数的消息队列标识,但无法授予 消息 参数指定的操作许可权。 |
ENOENT |
表示不存在 key 参数的消息队列 ID,且未设置 IPC_CREAT 命令。 |
ENOSPC |
指示将创建消息队列标识,但将超过系统对系统范围内允许的最大消息队列标识数施加的限制。 |
EEXIST |
表示 key 参数指定的值存在消息队列 ID,且 IPC_CREAT 和 IPC_EXCL 命令都已设置。 |