FTOK - Linux手册页

时间:2019-08-20 18:00:23  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2020-04-11

名称

ftok-将路径名和项目标识符转换为System V IPC密钥

语法

#include <sys/types.h>
#include <sys/ipc.h>

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

说明

ftok()函数使用由给定路径名(必须引用现有的可访问文件)命名的文件的身份以及proj_id的最低有效8位(必须为非零)来生成key_t类型的系统V IPC密钥,适用于msgget(2),semget(2)或shmget(2)。

当使用相同的proj_id值时,对于命名同一个文件的所有路径名,结果值都相同。当(同时存在的)文件或项目ID不同时,返回的值应该不同。

返回值

成功后,将返回生成的key_t值。在失败时返回-1,其中errno指示与stat(2)系统调用有关的错误。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
ftok()Thread safetyMT-Safe

遵循规范

POSIX.1-2001,POSIX.1-2008。

备注

在某些古老的系统上,原型是:

key_t ftok(char *pathname, char proj_id);

今天,proj_id是一个整数,但是仍然只使用8位。典型用法是使用ASCII字符proj_id,这就是为什么当proj_id为零时,行为被定义为未定义的原因。

当然,不能保证所得的key_t是唯一的。通常,尽力而为尝试将给定的proj_id字节,inode编号的低16位和设备编号的低8位组合为32位结果。冲突可能很容易发生,例如/ dev / hda1上的文件与/ dev / sda1上的文件之间。

示例

参见semget(2)。

另外参见

msgget(2),semget(2),shmget(2),stat(2),sysvipc(7)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/