Win32汇编——内存映射文件

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;另外,建立内存映射文件时不是使用文件句柄,而是使用命名的方法



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值