1.概念、好处及原理:书P374
2.内存映射文件是多个进程进行通信的最有效的方法
3.使用函数:
创建内存映射文件对象:CreateFileMapping ,决定是在磁盘文件上建立内存映射文件还是在页文件中建立进程间共享的映射
打开已创建好的对象:OpenFileMapping
映射视图:MapViewOfFile ,分配线性地址空间,映射文件内容,开始使用时才进行物理内存分配
撤销映射:UnmapViewOfFile
立即写入磁盘:FlushViewOfFile
4.使用内存映射文件读写文件步骤:
1.调用CreateFile 获得文件句柄 hFile
2.调用CreateFileMapping 获取hFile 对应的内存映像对象hFileMap
3.调用MapViewOfFile 获取一个区域或者整个文件对应的内存指针lpMemory
4.使用指针进行操作
5.调用UnmapViewOfFile 解除映射
6.调用CloseHandle 分别关闭 hFileMap 和 hFile
5.内存映射文件在进程间共享数据的步骤:
1.调用OpenFileMapping打开一个命名的内存映射文件对象,得到hFileMap。成功跳到步骤3,失败则说明需要创建第一个副本,跳到步骤2
2.调用CreateFileMapping创建命名的内存映射文件,得到hFileMap
3.调用MapViewOfFile 得到lpMemory
4.使用指针读写共享数据
5.调用UnmapViewOfFile 解除视图映射,
6.调用CloseHandle 关闭hFileMap
5与4的区别是:无需打开和关闭文件,但要OpenFileMapping;另外,建立内存映射文件时不是使用文件句柄,而是使用命名的方法