关于ftok函数的三个问题

xiehui888 2008-12-05 03:29:06
key_t ftok(const char *pathname, int proj_id);



1.pathname是目录还是文件的具体路径 可以顺便设置吗????

2.pathname还是用来反射将文件名或者目录的权限反射给 ipc的资源

3.proj_id可以顺便乱写吗?有什么约定?
...全文
1106 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hrx1989 2011-02-21
  • 打赏
  • 举报
回复
楼上非常的全面。
终于比较清楚了。谢谢!
hittlle 2010-03-30
  • 打赏
  • 举报
回复
第一,这个路径是为合成key而提取,这个路径必须是存在的;调用ftok的进程的实际UID或者有效UID,或者实际组ID,或者有效组ID,必须有访问些文件的权限;至少有r权限
第二,这个数字,有的称之为project ID; 在有的UNIX系统上,它的取值是1到255,LINUX上如何没注意;man ftok就知道了
kerven1988 2010-03-30
  • 打赏
  • 举报
回复
mark
benbenxiaoluchi 2008-12-12
  • 打赏
  • 举报
回复
mark
mymtom 2008-12-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cceczjxy 的回复:]
引用 5 楼 xiehui888 的回复:
楼上的
ftok根据路径名,提取inode号

可以随意设置路径吗?


只有是存在的真实路径都可以。
[/Quote]

应该还需要访问权限吧
man ftok 可以看到以下的说明
NAME
ftok -- create IPC identifier from path name
...
...
...

RETURN VALUES
The ftok() function will return -1 if path does not exist or if it cannot
be accessed by the calling process.
cceczjxy 2008-12-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiehui888 的回复:]
楼上的
ftok根据路径名,提取inode号

可以随意设置路径吗?
[/Quote]

只有是存在的真实路径都可以。
xiehui888 2008-12-07
  • 打赏
  • 举报
回复
楼上的
ftok根据路径名,提取inode号

可以随意设置路径吗?
cceczjxy 2008-12-06
  • 打赏
  • 举报
回复
ftok根据路径名,提取inode号,在根据proj_id,合成key.
应此,该路径是必须存在的,但proj_id是可以根据自己的约定,随意设置。
ftok只是根据文件inode在系统内的唯一性来取一个数值,和文件的权限无关。
xiehui888 2008-12-06
  • 打赏
  • 举报
回复
大家帮帮我啊
xiehui888 2008-12-05
  • 打赏
  • 举报
回复
fname就时你指定的文件名 指定什么样的文件名 对返回的结果有什么影响

为什么要指定

楼上那个的虽然说了但是还是含糊其辞!
wangkongxinglang 2008-12-05
  • 打赏
  • 举报
回复
ftok原型如下:
key_t ftok( char * fname, int id )
fname就时你指定的文件名,id是子序号。

失败返回值为-1

ftok应用范围:在IPC通信及消息记者中使用

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧