iOS 上的低级共享内存

2023-12-02

我正在尝试在 iOS 上构建一个共享内存块。它编译并链接,但是shmget()对最无辜的参数抛出 SIGSYS 信号:

NSString *p = [[NSBundle mainBundle] pathForResource:@"crash" ofType: nil];
key_t tok = ftok([p UTF8String], 918273);
int mid = shmget(tok, 4096, IPC_CREAT|S_IRUSR|S_IWUSR);

tok是一个大的正整数,而不是-1。大小 - 尝试过 1024,效果相同。

iOS 是否支持 SysV 共享内存?标头和库都存在,否则编译器/链接器会抱怨。相同的代码可以在模拟器上运行。我究竟做错了什么?

我的兴趣源于这个问题.


The shm_open()/mmap()组合在模拟器和设备上(在 iOS 4 上测试)上都像宣传的那样工作,无需任何明确的权限更改。

Note: shm_open()奇怪地被记录为可变参数。实际上,您需要使用访问掩码指定第三个参数 - 组合S_IRUSR- 像标志,或八进制chmod value.

编辑:看起来它在 iOS 7 中崩溃了。即使指定了 O_CREAT 标志,shm_open 也会返回 -1 且 errno=2 (ENOENT)。

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

iOS 上的低级共享内存 的相关文章

随机推荐

  • Python:传递变量名作为参数

    我有一个函数f x 其中创建了许多局部变量 x是与这些局部变量之一同名的字符串 我想通过更改来更改此局部变量x 执行此操作的干净方法是什么 目前我正在使用很多if elif声明 一些虚拟代码来代表我的问题 def f x a 1 2 3 b
  • 单色灰度图像,获取像素强度

    我试图导出单色 灰度 图像中特定像素的强度值 我有一些伪代码 但到目前为止我还无法实现真正 有效的东西 Retrieve the intensity value at location row column of the image img
  • mysql 配置停止于“启动服务器”

    我正在我的 Windows 8 机器上安装 MySQL 安装程序 在服务器配置过程中 它卡在 启动服务器 处并且不再移动 相同的日志是 Beginning configuration step Stopping Server if nece
  • 在 JavaScript 中使 forEach 异步

    我试图了解异步编程 Node js 但在这段代码上停滞不前 此函数在其回调中返回目录中的文件数组 function openDir path callback path dirname path fs exists path functio
  • 从方法中获取恒定的错误值

    我有 3 个问题 private static int NUMBER OF QUESTIONS 3 static boolean answer new boolean NUMBER OF QUESTIONS static boolean c
  • 使用 Google Apps 脚本将 Google 表单问题添加到表单的特定部分

    如果之前已经回答过这个问题 我深表歉意 但我已经进行了广泛的研究并且发现不足 我正在尝试向已存在的 Google 表单的各个部分添加一些问题 我知道如何添加新问题 form addTextItem 但这会将其附加到表单的末尾 我还知道如何获
  • 如何在 Perl 中替换日期?

    perl pi back e s 2013 07 31 05 54 14 2014 07 31 00 00 00 g tmp ranjan replace SEL 我正在使用上面的衬里来替换日期2013 07 31 05 54 14 to
  • 在设计时显示 MultilineStringEditor 来编辑编辑控件的行?

    我正在跟进这篇 C 文章了解如何创建 ActionList 和操作项 但是本文仅关注 类型的操作项DesignerActionPropertyItem 我想创建一个类型的项目DesignerActionMethodItem调用必须打开一个方
  • Perl 中的电子邮件主题 MIME 编码。

    我正在尝试在 Perl 5 8 5 下发送主题行中包含非 ASCII 字符的电子邮件 我的简单示例使用单词 nderungen 德语元音变音 但主题行始终会显示为 nderungen 而不是正确转换 usr bin env perl use
  • 为什么双括号初始化要求 SerialVersionUID?

    public static List
  • 假错误? `在初始化之前使用的变量` 在 init() 中初始化期间

    抱歉举了个无意义的例子 试图简化它 但仍然不明白发生了什么 以下给了我Variable self greeting used before being initialized struct MyView View State var gre
  • Sharepoint 任务列表和 Outlook 同步

    我正在尝试将 Sharepoint 任务列表与 Outlook 同步 当用户将任务列表连接到 Outlook 时 所有用户的任务都在 Outlook 中可见 我是否可以在源本身提供过滤 而不是在 Outlook 中应用过滤 我的应用程序有相
  • 将 CSS 添加到 iFrame [重复]

    这个问题在这里已经有答案了 可能的重复 如何将 CSS 应用于 iFrame 现在我正在通过 jquery 加载 iframe window load function iframe load function iframe show lo
  • 如何在 OS X 上将 Python 的默认版本设置为 3.x? [复制]

    这个问题在这里已经有答案了 我正在运行 Mountain Lion 基本默认 Python 版本是 2 7 我下载了 Python 3 3 并想将其设置为默认值 现在 python version 2 7 5 python3 3 versi
  • cvtColor() 转换为 HSV 色彩空间后的 Numpy 8/16/32 位图像数据类型

    我正在使用以下方法将图像从 RGB 表示形式转换为 HSV 表示形式cv2 cvtColor 但是当转换结果图像时np float32数据类型为np uint16 and np uint8通过重新缩放然后投射 使用时生成的图像cv2 ims
  • Cypress:如何获取 div 的值(混合异步和同步代码)

    我有一个带有以下 html 的 div div style margin right 5px 12 300 div 我想得到12 3001将其转换为 int 并保存该值以供另一个函数使用 我收到这个错误 cy then 失败 因为您混淆了异
  • sql查询提取唯一记录

    假设我的表只包含 2 个字段 ID 和产品 并说我的结构如下所示 1 微软 0 思科 2 思科 3 VMware 0 土坯 0 微软 我需要编写一个查询来列出具有以下内容的记录id 0但只有 0 土坯 因为另外两种产品 miocrsoft
  • 程序内子程序声明中的不可分类语句

    因此 我用 Fortran 90 编写了一个基本的 Vigenere Cypher 但是当我尝试编译它时 由于我的内部子例程 我遇到了无法分类的语句错误 我已经在 中列出了每个子例程中使用的变量 但我仍然收到错误 我认为这是一个非常简单的修
  • 字符串上带有美元的动态对象

    我使用此代码从 YouTube 获取视频的观看次数 WebClient ccn new WebClient string dog ccn DownloadString https gdata youtube com feeds api vi
  • iOS 上的低级共享内存

    我正在尝试在 iOS 上构建一个共享内存块 它编译并链接 但是shmget 对最无辜的参数抛出 SIGSYS 信号 NSString p NSBundle mainBundle pathForResource crash ofType ni