PR_OpenSharedMemory

打开现有的共享内存段,或者如果不存在指定名称的共享内存段,则创建一个新的共享内存段。

语法

#include <prshm.h>

NSPR_API( PRSharedMemory * )
  PR_OpenSharedMemory(
     const char             *name,
     PRSize             size,
     PRIntn             flags,
     PRIntn             mode
);

/* Define values for PR_OpenShareMemory(...,create) */
#define PR_SHM_CREATE 0x1  /* create if not exist */
#define PR_SHM_EXCL   0x2  /* fail if already exists */

参数

该函数具有以下参数

name

共享内存段的名称。

size

共享内存段的大小。

flags

创建共享内存的选项。

mode

与传递给 PR_Open 的相同。

返回值

指向不透明结构 PRSharedMemory 的指针,如果发生错误则返回 NULL。通过调用 PR_GetErrorPR_GetOSError 获取失败原因。

描述

PR_OpenSharedMemory 创建一个新的共享内存段或将先前创建的内存段与指定名称关联。当参数 create 为 (PR_SHM_EXCL | PR_SHM_CREATE) 且共享内存已存在时,函数返回 NULL,并将错误设置为 PR_FILE_EXISTS_ERROR

当参数 createPR_SHM_CREATE 且共享内存已存在时,将返回该内存段的句柄。如果该段不存在,则创建它并返回指向相关 PRSharedMemory 结构的指针。

当参数 create 为 0 且共享内存存在时,将返回指向 PRSharedMemory 结构的指针。如果共享内存不存在,则返回 NULL,并将错误设置为 PR_FILE_NOT_FOUND_ERROR