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)。
Interface | Attribute | Value |
ftok() | Thread safety | MT-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)。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。