即使所有标志都拒绝shm_open()权限

时间:2019-05-05 06:36:34

标签: c linux shared-memory

我正在尝试使用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中遇到的错误:

enter image description here

0 个答案:

没有答案