首页 > 解决方案 > 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 中遇到的错误:

在此处输入图像描述

标签: clinuxshared-memory

解决方案


推荐阅读