我正在尝试在 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 共享内存?头文件和库都存在,否则编译器/链接器会抱怨。相同的代码适用于模拟器。我究竟做错了什么?
我的兴趣源于这个问题。