【发布时间】:2012-06-19 13:05:47
【问题描述】:
只是好奇我是否像这样在 Windows 平台上创建共享内存数组:
HANDLE hFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE | SEC_COMMIT, 0, 1024 * 4, _T("mySharedMemName"));
if(hFile)
{
VOID* pData = MapViewOfFile(hFile, FILE_MAP_ALL_ACCESS, 0, 0, 1024 * 4);
//Is 'pData' array initialized with zeros the first time the 'hFile' is used?
}
我第一次调用这个代码sn-p时,内存数组是用0初始化的吗?如果没有,如何使其零初始化?
【问题讨论】:
-
大多数操作系统零填充新映射到进程地址空间的所有页面(除非这些页面由磁盘文件或外围设备共享或支持)。从安全的角度来看,不这样做是不明智的。
标签: c++ winapi shared-memory