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