ftok 子例程

用途

生成标准进程间通信密钥。

标准 C 库 (libc.a)

语法

#include <sys/types.h>
#include <sys/ipc.h>
key_t ftok ( PathID)
char *Path;
int ID;

描述

注意: 如果 弗托克 子例程的 路径 参数指定了已除去的文件,而键仍引用该文件,那么 弗托克 子例程将返回错误。 如果然后重新创建该文件,那么 弗托克 子例程可能会返回不同于原始密钥的密钥。
注意: 每个安装都应该定义构成密钥的标准。 如果不遵守标准,那么不相关的流程可能会干扰彼此的操作。
注意: 弗托克 子例程不保证生成唯一密钥。 但是,密钥重复的发生非常罕见,并且主要针对跨文件系统。

弗托克 子例程根据 路径 标识 参数返回一个键,以用于获取进程间通信标识。 如果使用相同的 标识 参数调用 弗托克 子例程,那么它对链接文件返回相同的键。 如果使用不同的 标识 参数,那么将对同一文件返回不同的键。

所有进程间通信工具都要求您向 消息塞姆山什姆 gget 子例程提供密钥,以获取进程间通信标识。 弗托克 子例程提供了一种创建密钥的方法,但其他方法是可行的。 例如,您可以将项目标识用作键的最重要字节,并将其余部分用作序号。

参数

描述
路径 指定可由进程访问的现有文件的路径名。
标识 指定用于唯一标识项目的字符。

返回值

当成功时, 弗托克 子例程返回一个可以传递到 消息塞姆山 什姆 gget 子例程的键。

错误代码

如果以下一个或多个条件成立,那么 弗托克 子例程将返回值 (key_t) -1 :

  • 路径 参数所命名的文件不存在。
  • 该进程无法访问由 路径 参数指定的文件。
  • 标识 参数的值是 0。