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_GetError 和 PR_GetOSError 获取失败原因。
描述¶
PR_OpenSharedMemory 创建一个新的共享内存段或将先前创建的内存段与指定名称关联。当参数 create
为 (PR_SHM_EXCL
| PR_SHM_CREATE
) 且共享内存已存在时,函数返回 NULL
,并将错误设置为 PR_FILE_EXISTS_ERROR
。
当参数 create
为 PR_SHM_CREATE
且共享内存已存在时,将返回该内存段的句柄。如果该段不存在,则创建它并返回指向相关 PRSharedMemory
结构的指针。
当参数 create
为 0 且共享内存存在时,将返回指向 PRSharedMemory
结构的指针。如果共享内存不存在,则返回 NULL
,并将错误设置为 PR_FILE_NOT_FOUND_ERROR
。