1 #include <windows.h>
2
3 void main()
4 {
5 HANDLE hFile=CreateFile(
6 "G:\\test.txt", //文件名
7 GENERIC_READ|GENERIC_WRITE, //对文件进行读写操作
8 FILE_SHARE_READ|FILE_SHARE_WRITE,
9 NULL,
10 CREATE_ALWAYS, //打开已存在文件
11 FILE_ATTRIBUTE_NORMAL,
12 0);
13
14 HANDLE hMapFile=CreateFileMapping(
15 hFile,
16 NULL,
17 PAGE_READWRITE, //对映射文件进行读写
18 2,
19 935 * 1024 * 1024 + 64 * 1024, //这两个参数共64位,所以支持的最大文件长度为16EB
20 NULL);
21
22 if(hMapFile==INVALID_HANDLE_VALUE)
23 {
24 CloseHandle(hFile);
25 return;
26 }
27
28 //把文件数据映射到进程的地址空间
29 void* pvFile=MapViewOfFile(
30 hMapFile,
31 FILE_MAP_READ|FILE_MAP_WRITE,
32 2,
33 64 * 1024,
34 0);
35
36 DWORD dwError = GetLastError();
37
38 if (pvFile)
39 {
40 unsigned char *p=(unsigned char*)pvFile;
41
42 p[1]=52;
43
44 //结束
45 UnmapViewOfFile(pvFile); //撤销映射
46 }
47
48 CloseHandle(hMapFile); //关闭文件
49 CloseHandle(hFile); //关闭文件
50 }
51