WIN32硬盘文件映射到内存
Posted ganxiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WIN32硬盘文件映射到内存相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <windows.h>
int main()
{
//创建打开文件
HANDLE cFile = CreateFile("D:\filterBufFile.txt",
GENERIC_READ | GENERIC_WRITE,
0,
NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
//内存申请物理页
HANDLE hMapFile = CreateFileMapping(cFile, NULL, PAGE_READWRITE, 0, 0, "共享映射");
//和虚拟地址映射
LPTSTR lpBuff = (LPTSTR)MapViewOfFile(hMapFile, FILE_MAP_WRITE, 0, 0, 0);
//*(PDWORD)lpBuff = 0x12345678;
//getchar();
//读文件
printf("%p
", lpBuff);
printf("%x
", *(PDWORD)lpBuff);
printf("%x
", *((PDWORD)lpBuff+1));
//写文件
*(PDWORD)lpBuff = 0x41414141;
printf("%x
", *(PDWORD)lpBuff);
//getchar();
//强制刷新
//FlushViewOfFile(((PDWORD)lpBuff), 4);
//关闭映射
UnmapViewOfFile(lpBuff);
//关闭句柄
CloseHandle(hMapFile);
//关闭句柄
CloseHandle(cFile);
system("pause");
return(0);
}
以上是关于WIN32硬盘文件映射到内存的主要内容,如果未能解决你的问题,请参考以下文章
win32day13-地址空间/地址映射/虚拟内存/堆内存/内存映射文件