ftok 子例程
用途
生成标准进程间通信密钥。
库
标准 C 库 (libc.a)
语法
描述
注意: 如果 弗托克 子例程的 路径 参数指定了已除去的文件,而键仍引用该文件,那么 弗托克 子例程将返回错误。 如果然后重新创建该文件,那么 弗托克 子例程可能会返回不同于原始密钥的密钥。
注意: 每个安装都应该定义构成密钥的标准。 如果不遵守标准,那么不相关的流程可能会干扰彼此的操作。
注意: 弗托克 子例程不保证生成唯一密钥。 但是,密钥重复的发生非常罕见,并且主要针对跨文件系统。
弗托克 子例程根据 路径 和 标识 参数返回一个键,以用于获取进程间通信标识。 如果使用相同的 标识 参数调用 弗托克 子例程,那么它对链接文件返回相同的键。 如果使用不同的 标识 参数,那么将对同一文件返回不同的键。
所有进程间通信工具都要求您向 消息, 塞姆山和 什姆 gget 子例程提供密钥,以获取进程间通信标识。 弗托克 子例程提供了一种创建密钥的方法,但其他方法是可行的。 例如,您可以将项目标识用作键的最重要字节,并将其余部分用作序号。
参数
| 项 | 描述 |
|---|---|
| 路径 | 指定可由进程访问的现有文件的路径名。 |
| 标识 | 指定用于唯一标识项目的字符。 |
返回值
当成功时, 弗托克 子例程返回一个可以传递到 消息, 塞姆山或 什姆 gget 子例程的键。
错误代码
如果以下一个或多个条件成立,那么 弗托克 子例程将返回值 (key_t) -1 :
- 路径 参数所命名的文件不存在。
- 该进程无法访问由 路径 参数指定的文件。
- 标识 参数的值是 0。