1 Star 0 Fork 33

smileForLife/php-beast

forked from liexusong/php-beast 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
shm.c 867 Bytes
一键复制 编辑 原始数据 按行查看 历史
maben 提交于 2017-03-22 16:44 . add shm
#include "shm.h"
#ifdef PHP_WIN32
#include <Windows.h>
#else
#include <sys/mman.h>
#ifndef MAP_NOSYNC
#define MAP_NOSYNC 0
#endif
#endif
void *beast_shm_alloc(size_t size)
{
void *p;
#ifdef PHP_WIN32
HANDLE hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE,
NULL, PAGE_READWRITE, 0, size, NULL);
if (hMapFile == INVALID_HANDLE_VALUE) {
return NULL;
}
p = MapViewOfFile(
hMapFile,
FILE_MAP_ALL_ACCESS,
0,
0,
size);
CloseHandle(hMapFile);
#else
p = mmap(NULL,
size,
PROT_READ|PROT_WRITE,
MAP_SHARED|MAP_ANON,
-1,
0);
#endif
return p;
}
int beast_shm_free(void *p, size_t size)
{
#ifdef PHP_WIN32
return UnmapViewOfFile(p) ? 0 : -1;
#else
return munmap(p, size);
#endif
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/smileforlife/php-beast.git
git@gitee.com:smileforlife/php-beast.git
smileforlife
php-beast
php-beast
master

搜索帮助