小编bit*_*ost的帖子

共享内存 - shm_open 导致权限被拒绝

我正在编写一个使用 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)

任何帮助将非常感激。

c posix shared-memory

5
推荐指数
1
解决办法
6182
查看次数

标签 统计

c ×1

posix ×1

shared-memory ×1