ftok() 碰撞

2023-12-25

我在用ftok()为 C 应用程序使用的共享内存段生成标识符。我遇到了问题,在一个盒子上我与 root 使用的标识符发生冲突。在这种情况下,我可以通过破解代码来修复它,但我想要一个更强大的解决方案。

应用程序安装到其自己的逻辑卷中,提供给 ftok 的路径是应用程序的二进制目录(在该 lv 内)。提供的 ID 从 1 开始,通常有六个左右。

我发现 ftok 会做这样的事情:

(id & 0xff) << 24 | (st.st_dev & 0xff) << 16 | (st.st_ino & 0xffff)

st.st_dev / st.st_ino 的组合应该是非常独特的。但我在许多盒子中看到,st_dev 的最低有效位通常是 0(即 st_dev 数字通常是 256 的倍数)。而且由于二进制目录位于逻辑卷中,因此无法保证 inode 编号与 root 使用的内容不同。

有没有一个好的方法可以解决这个问题 - ftok 的更好替代方案,或者设置机器的方法,使 st_dev 数字对 ftok 更有用?


您可能需要考虑使用 POSIX 共享内存(通过shm_open http://pubs.opengroup.org/onlinepubs/009604499/functions/shm_open.html),它不会受到这种按键冲突的影响

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ftok() 碰撞 的相关文章

  • 具有自动返回类型推导的 Friend 函数模板无法访问私有成员

    抱歉这个问题的标题太复杂了 我试图描述我为这个问题构建的最小 SSCCE 我有以下代码 include
  • 在 ASP.NET Core 中全局重用变量

    我必须强制这些变量在我想使用的每个变量上重用 这让我很困难 我需要创建一个类来定义这些变量并在整个程序中使用它们 我怎样才能做到这一点 string RootFolderName Uplaod string ProductPictureFo
  • 当我执行 pip --version 时,它显示错误为 ImportError:没有名为 pyparsing 的模块

    我尝试安装 卸载py解析以及它不起作用 我被这个问题困住了 我还必须安装额外的库 这是错误消息 Traceback most recent call last File usr bin pip line 5 in
  • C++ 构造函数根据参数类型调用另一个构造函数

    我有这门课 class XXX public XXX struct yyy XXX std string private struct xxx data 第一个构造函数 使用结构 很容易实现 第二 我可以将一个字符串以特定的格式分开 解析
  • 委托 System.Action 不接受 1 个参数

    那个行动 readonly Action execute public RelayCommand Action execute this execute null public RelayCommand Action execute Fun
  • 使用 C 序列化 double 和 float

    如何在 C 中序列化双精度数和浮点数 我有以下用于序列化短整型 整数和字符的代码 unsigned char serialize char unsigned char buffer char value buffer 0 value ret
  • 从 pdf 和 word 文件中提取文本

    如何在 C 中从 pdf 或 word 文件中提取文本 删除粗体 图像和其他富文本格式媒体 您可以使用专为索引服务设计 由索引服务使用的过滤器 它们旨在从各种文档中提取纯文本 这对于在文档内部进行搜索非常有用 您可以将其用于 Office
  • 预期在模拟中调用一次,但使用 Moq 时调用次数为 0 次

    我收到错误 在mock上调用一次 但是0次 下面是我的代码结构 public class GenerateAddress IGenerateAddress public GenerateAddress IAddress createAdd
  • 强制 shell 在 SunGrid 引擎中使用 conda 变量中的 python [重复]

    这个问题在这里已经有答案了 我正在尝试在 SunGrid 引擎中执行 python 文件 并且从 anaconda3 环境变量中执行它 我的代码很简单 from future import print function import url
  • C++ 访问嵌套类的私有成员

    标题可能有点误导 我有以下问题 我有一棵由叶子和内部节点组成的树 用户应该能够在叶子中存储任何信息and该树有一些方法可以获取一组用户定义的值 并且需要在恒定时间内 未摊销 访问相应的叶子 我提出了以下想法 但它不起作用 因为不幸的是我无法
  • “双免”是什么意思?

    正如标题所暗示的那样 我是 C 语言的新手 并且很快就会有期中考试 我目前正在修改过去的论文 一个反复出现的主题是双重自由问题 我理解就是调用的过程free 在同一个内存位置两次 但我有几个问题我不能 100 确定如何回答 问题1 C中双重
  • 使用 MemoryCache 而不是普通的旧 Dictionary 的令人信服的理由是什么

    我刚刚遇到内存缓存 http msdn microsoft com en us library system runtime caching memorycache aspx这是 NET 4 中的新增功能 我知道如果你想的话它会很有用 限制
  • 为什么未命名的命名空间不等同于带有“using命名空间”声明的常规命名空间?

    A 最近的话题 https stackoverflow com questions 3673353 anonymous namespace ambiguityon SO 触发了这个 未命名的命名空间被认为等同于 namespace uniq
  • 从 Windows 选择声音并播放它们

    我有一个 WinForms 应用程序 该应用程序有一个 首选项 部分 用户可以在其中选择显示警报时播放哪些声音 是否可以有一个组合框 用户可以从 Windows 存储的声音中进行选择 例如 紧急停止 紧急蜂鸣 等 这些可以在 控制面板 gt
  • 在多个线程中添加和删除时 List 中的 null 值

    我知道 C System Collections Generic List 对象不是线程安全的 但我想知道为什么这段代码会生成空值 Task Run gt for var i 0 i lt 10 i var str Test i list
  • OpenFileDialog 中的多个文件扩展名

    如何在一组中使用多个文件扩展名OpenFileDialog 我有Filter BMP bmp GIF gif JPG jpg PNG png TIFF tiff 我想创建组 以便 JPG 为 jpg 和 jpeg TIFF 为 tif 和
  • 基于 C++ 组件的类

    Hi 我正在使用容器编写一个基于组件的类 但是在考虑了许多不同的方法之后 我找不到真正符合我想要的方法 这是总体思路的一个例子 我已经写的代码 Abstract class Component class Component public
  • Pythonlibs3 CMake 和 macOS

    更新2 将以下两行添加到我的 CMake 文件中时 成功找到了 python 3 及其库 这只在终端中工作的原因是因为 CLion 使用其捆绑版本的 CMake 3 6 3 而我的终端使用的更新版本 3 7 2 正确找到了 python F
  • 将变量传递给 SSIS 中的项目参数

    我是这个网络的新手 希望我能找到这个问题的答案 我有一个 SSIS 项目 其中包含多个使用项目参数的包 我正在尝试更新项目参数 例如 PeriodStart 2014年5月31日 我找不到动态写入项目参数的方法 我在 4 0 框架中使用 V
  • 如何用纯色填充位图?

    我需要使用唯一的 RGB 颜色创建 24 位位图 分辨率 100x100 像素 并将生成的图像保存到磁盘 我目前使用的是SetPixel http msdn microsoft com en us library 6c7eyzyb aspx

随机推荐

  • 使用Java下载文件随机冻结

    当我尝试下载文件时 在本例中它只是一个图像 但真正的应用程序是一个更新机制 InputStream似乎冻结了read 我很确定我的代码没问题 所以我想知道为什么会发生这种情况以及它是否只在我的计算机上 有人可以运行这个吗 请注意 Timer
  • 在 Kotlin 中,是否可以在运行时更改委托?

    下面的代码生成的字节码创建了一个private final Base delegate 0领域中的Derived班级 当可变字段b分配的原始委托不会改变 有没有办法在运行时更改委托 同时保持zero boilerplate执行 interf
  • 如何在 Java Jersey 中使用 CDI 事件?

    我正在尝试遵循这篇文章的赞成答案 使用 JAX RS 和 Jersey 进行基于 REST 令牌的身份验证的最佳实践 https stackoverflow com questions 26777083 best practice for
  • UIScrollView 内的 UITableView 滚动后未收到第一次点击

    Brief 我有一个问题UITableView里面一个UIScrollView 当我滚动外部scrollView the table没有收到willSelect didSelect第一次触摸时发生事件 但第二次触摸时发生 更奇怪的是 单元本
  • 如何删除输入表单中引号前的 \

    您好 当我在我的网站上发布某些内容并在其中使用引号时 我会得到类似的内容 我需要对我的代码做什么来解决这个问题 大概是魔术语录 http php net manual en security magicquotes php这就是导致这种行为
  • jquery:双击打开链接?

    我想知道这是否是最好的解决方案 folder a click function e e preventDefault folder a dblclick function e window location replace this att
  • 使用 Python 设置文件中日期字符串的格式

    我从客户端获取 csv 文件 其中包含可变数量的列 在这些列中 可能有一些列包含日期字符串 但未定义顺序 例如 column1str column2dt column3str column4int column5int column6dt
  • 洛蒂和 RecyclerView

    我在用着Lottie https github com airbnb lottie androidRecyclerView 的 ViewHolder 内的动画 滚动时 帧速率太低 即使动画暂停也会发生这种情况 对这个问题有什么建议或解决方案
  • 设置 matplotlib 默认图形窗口标题

    图窗的默认窗口标题是图 X 其中 X 每个图都会增加 我知道如何更改图形的标题 fig pylab gcf fig canvas set window title Test 但是如何更改默认窗口标题 使其成为 测试 1 测试 2 等 以便不
  • Provider 与 Get_it

    在搜索 Flutter 的依赖注入解决方案时 我发现了两个很棒的库 provider and get it 据我所知 provider有更多的样板 但它非常适合 Flutter 允许Consumer重建部分Widget树 一旦注入的值发生变
  • 列在选择列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中

    我下面有 sql 查询 但执行时遇到问题 SELECT from Select row number OVER Order By FloorUserId as row number FloorUserId max CASE WHEN Are
  • 我可以在 Typescript 中重用函数的参数定义吗?

    我想捕获一个函数的编译时参数结构 我可以在具有相似签名的多个函数定义中重用该结构 我认为这可能是沿着这个TS问题 https github com Microsoft TypeScript issues 4130或者更具体地说this on
  • 如何解决 JSON.parse: 字符串文字中的错误控制字符,在此代码中[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我是初学者JSON文档 这是我的代码 所以请帮助我解决这个错误 id design utilisateur rev 1 967a00dff5
  • Linux、Mono、共享库和未解析的符号

    我有一个填充库 共享 C 它调用另一个共享库 libexif 中的函数 并为 C 提供一个简单的接口以进行平台调用调用 也就是说 C 程序使用 PInvoke 调用我的自定义共享库 而我的自定义共享库又调用另一个共享库 在 Windows
  • Django - 如何使用 South 重命名模型字段?

    我想更改模型中特定字段的名称 class Foo models Model name models CharField rel models ForeignKey Bar 应更改为 class Foo models Model full n
  • 在 C/C++ 中高效地从结构化文件中读取数据

    我有一个文件如下 该文件由两部分组成 标题和数据 数据部分被分成大小相等的页面 每个页面都保存特定指标的数据 可能需要多个页面 不必是连续的 来保存单个指标的数据 每个页面由页眉和页体组成 页眉有一个名为 下一页 的字段 它是保存相同指标数
  • Memcache::set() 损坏的管道

    一般来说 Memcache 正在工作 但我的日志中多次出现这样的情况 Memcache set memcache set 发送 8192 字节失败 errno 32 管道破裂 字节数变化 PHP5 3 Memcache https www
  • XCTestCase waitForExpectationsWithTimeout:handler: 当未满足期望时抛出 EXC_BAD_ACCESS

    我正在使用 XCTestExpectation 测试异步调用 当completionHandler 在给定的 1 秒超时之前执行时 以下代码有效 测试成功 func test async call prepare let sut Class
  • 以编程方式配置带有嵌入式 tomcat 7 的 hibernate

    我正在尝试在我的应用程序中配置嵌入式 tomcat 实例 而无需任何配置文件 我做了一些研究并以此为基础长教程 http www ehow com how 7999843 stepbystep hibernate tomcat mysql
  • ftok() 碰撞

    我在用ftok 为 C 应用程序使用的共享内存段生成标识符 我遇到了问题 在一个盒子上我与 root 使用的标识符发生冲突 在这种情况下 我可以通过破解代码来修复它 但我想要一个更强大的解决方案 应用程序安装到其自己的逻辑卷中 提供给 ft