首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ftok()复制键

使用ftok()复制键
EN

Stack Overflow用户
提问于 2013-05-20 07:06:22
回答 1查看 1.6K关注 0票数 0

系统中有一个现有代码,它使用ftok()根据文件名生成密钥,并将零传递给它。代码在32位上运行良好,但是当移动到64位时开始随机地抱怨。通过更多的研究,我发现这主要是因为低意义位是零,shmopen()可能是一个更好的选择。让我知道shmopen()在密钥碰撞中安全吗?有什么更好的方法来避免关键碰撞吗?

代码语言:javascript
复制
key = ftok(filename,0);
EN

回答 1

Stack Overflow用户

发布于 2013-05-20 07:09:40

来自POSIX规范

当使用相同的id值调用时,ftok()函数将为所有命名相同文件的路径返回相同的键值,并在使用不同的id值调用时返回不同的键值,或者使用同时命名同一文件系统中存在的不同文件的路径返回不同的键值。未指定ftok()是否在删除并用相同名称重新创建指定的文件后再次调用时返回相同的键值。

因此,使用相同的路径和id调用函数将返回相同的键。如果您想要相同路径的不同键,则需要更改id。

是的,当id导致未指定的行为时,传递零,所以您不应该这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16644308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档