我正在编写一个使用 POSIX 共享内存的程序,但有一个我不确定如何修复的错误。我寻找了类似的问题,但找不到与此特定问题相关的任何问题。
涉及两个文件 - server.c,其中包含程序运行的代码,以及 shm.c,其中包含为处理共享内存提供抽象的函数。这是一个作业,所以我不能偏离当前的结构太远。
以下是每个文件的相关代码:
服务器.c
int shmFd;
shmFd = createSHM(SHNAME);
Run Code Online (Sandbox Code Playgroud)
shm.c
int createSHM(char * shname)
{
int fileDesc;
fileDesc = shm_open(shname, O_CREAT | O_RDWR, 0);
if(fileDesc == -1)
{
perror("Error: Could not create shared memory space");
}
return fileDesc;
}
Run Code Online (Sandbox Code Playgroud)
shm.h
#define SHNAME "/shmserver"
Run Code Online (Sandbox Code Playgroud)
当我尝试在终端中运行构建的程序时,出现以下错误:
Error: Could not create shared memory space: Permission denied
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激。