c - shm_open() 权限被拒绝,即使有所有标志
问题描述
我正在尝试创建一个共享内存对象,shm_open
但我不断收到权限被拒绝错误。直到我手动删除/shm
下/dev
然后重新制作它才发生这种情况。(这可能是问题吗?我需要对我创建的新shm
文件夹设置权限吗?)
无论如何,这里是代码:
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void make_shm()
{
int fd;
fd = shm_open("NEW_FS", O_CREAT|O_RDWR, S_IRWXU|S_IRWXG|S_IRWXO);
if (fd == -1) {
perror("error when making shared mem object\n.");
}
}
int main(int argc, char *argv[]) {
make_shm();
}
这是我在 IDE 中遇到的错误:
解决方案
推荐阅读
- performance - Unity Physics 性能飙升,同时在运行时甚至更新单个盒子碰撞器大小
- google-sheets - 当 Google Sheet 中的列不同时如何合并数据
- django - 在唯一约束上制定条件 Q 以进行异常处理
- python - 我正在尝试运行 cmake 并收到语法错误
- python - 尝试启动 train.py 时出现 UnicodeDecodeError
- python - 将用户定义的变量复制到字符串中
- android - 为什么协程在使用 setOnTouchListener 时会破坏我的应用程序?
- ios - 灵活大小的 UICollectionview 页脚无法正常工作
- azure - 我应该使用 Docker 来部署函数库吗?
- python - 获取列名旁边的所有不同列值