社区
Linux/Unix社区
帖子详情
关于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
打赏
收藏
关于ftok函数的三个问题
key_t ftok(const char *pathname, int proj_id); 1.pathname是目录还是文件的具体路径 可以顺便设置吗???? 2.pathname还是用来反射将文件名或者目录的权限反射给 ipc的资源 3.proj_id可以顺便乱写吗?有什么约定?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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通信及消息记者中使用
Shell脚本实现
ftok
函数
虽然理论上来说我们在定义一个 IPC Key 的时候可以使用任意自己喜欢的 Key ,但为了避免与其他的程序产生定义重复,在 UNIX/Linux 中一般会使用 key_t
ftok
(const char *path, int id)
函数
来生成一个比较唯一的 Key...
UNIX网络编程 卷2:进程间通信
3.2 key_t键和
ftok
函数
20 3.3 ipc_perm结构 22 3.4 创建与打开IPC通道 22 3.5 IPC权限 24 3.6 标识符重用 25 3.7 ipcs和ipcrm程序 27 3.8 内核限制 27 3.9 小结 28 习题 29 第二部分 消息传递 ...
Linux /Unix 共享内存
然后将“模式” 和“权限标识”进行“或”运算,做为第
三个
参数。 如: IPC_CREAT | IPC_EXCL | 0640 例子中的0666为权限标识,4/2/1 分别表示读/写/执行3种权限,第一个0是UID,第一个6(4+2)表示拥有者的权限,第...
《UNIX网络编程 第2版. 第2卷, 进程间通信(中文版)》(W·Richard Stevens[美] 著)
3.2 key_t键和
ftok
函数
20 3.3 ipc_perm结构 22 3.4 创建与打开IPC通道 22 3.5 IPC权限 24 3.6 标识符重用 25 3.7 ipcs和ipcrm程序 27 3.8 内核限制 27 3.9 小结 28 习题 29 第二部分 消息传递 第4章 管道和FIFO 32 ...
linux 共享内存浅析
然后将“模式” 和“权限标识”进行“或”运算,做为第
三个
参数。 如: IPC_CREAT | IPC_EXCL | 0666 这个
函数
成功时返回共享内存的ID,失败时返回-1。 // shmid开辟共享内存 shmid = shmget( shmkey , sizeof(in_...
Linux/Unix社区
23,125
社区成员
74,509
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章