C++ CreateFileMapping/MapViewOfFile zero返回的共享内存数组是否已初始化?
只是好奇我是否正在Windows平台上创建共享内存阵列,如下所示:C++ CreateFileMapping/MapViewOfFile zero返回的共享内存数组是否已初始化?,c++,winapi,shared-memory,C++,Winapi,Shared Memory,只是好奇我是否正在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);
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?
}
第一次调用此代码段时,内存数组是否用0初始化?如果否,如何将其初始化为零?来自:
操作系统分页文件支持的文件映射对象中的页面的初始内容为0(零)
谢谢显然我错过了。很好,我们不必清除它。大多数操作系统零填充所有新映射到进程地址空间的页面(除非这些页面由磁盘文件或外围设备共享或支持)。从安全角度来看,不这样做是不明智的。