gpt4 book ai didi

linux - ftok() 中的这个 "project identifier"是什么?

转载 作者:行者123 更新时间:2023-12-05 07:18:45 28 4
gpt4 key购买 nike

第二个参数proj_id。这是什么?

#include <sys/types.h>
#include <sys/ipc.h>
key_t ftok (const char *pathname, int proj_id);

最佳答案

关于 ftok 的实现,有一个基于 key 和标识符的数据结构(其中附加了您提供的路径中的文件 inode 和与之关联的唯一 ID)。

因此,您可以为 proj_id 使用任何 int 值,以便在使用相同的 proj_id 引用时,与其关联的返回值将是通用的。

我通过更改 proj_id 并使用相同的文件然后更改回相同的 proj_id (n-1) 来测试它。我的实验成功了。在具有相同 proj_id 的情况下,我只能通过传递的 ftok key_id 分配 1 个信号量。但是当我更改 proj_id 并发送相同的文件路径时,我能够获得新的信号量。(记得使用 nano 进行 chaning,因为 vim 在使用 :wq 选项时会更改文件的 inode 编号)。

供引用: https://pubs.opengroup.org/onlinepubs/9699969699/functions/ftok.html

关于linux - ftok() 中的这个 "project identifier"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172088/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com