Linux内核:内存管理——内存映射文件

创建内存映射文件 CreateFileMapping

  • 将上述真正存在的文件(物理文件) hFile映射成为一个虚拟的映射文件 hMap ,即将物理文件与虚拟文件绑定
HANDLE CreateFileMapping(
  HANDLE hFile,                       //物理文件句柄
  LPSECURITY_ATTRIBUTES lpAttributes, //安全属性
  DWORD flProtect,                    //保护设置
  DWORD dwMaximumSizeHigh,            //高位文件大小
  DWORD dwMaximumSizeLow,             //低位文件大小
  LPCTSTR lpName                      //共享内存名称
);
  • 示例
   HANDLE hMap = CreateFileMapping( hFile, NULL, PAGE_READWRITE, 0,1024*1024,TEXT("ZJ"));
  • 参数解释(之后补)

加载内存映射文件 MapViewOfFile :映射成内存地址

  • 将虚拟文件映射成内存地址,方便使用。即将文件与内存绑定,以后操作该内存其实就是操作该文件。
  • 原型
MapViewOfFile(
    __in HANDLE hFileMappingObject,  //共享文件对象
    __in DWORD dwDesiredAccess,   //文件共享属性
    __in DWORD dwFileOffsetHigh,  //文件共享区的偏移地址
    __in DWORD dwFileOffsetLow,  //文件共享区的偏移地址
    __in SIZE_T dwNumberOfBytesToMap  //共享数据长度
    );
  • 示例
    CHAR* pszText=NULL; //一个指针,不需要分配空间
    pszText = (CHAR*)MapViewOfFile(hMap,FILE_MAP_ALL_ACCESS,0,0,1024*1024); //通过映射后,该指针就指向该文件。
  • 参数解释:(之后补)

卸载映射 UnmapViewOfFile

  • 停止当前程序的一个内存映射。
  • 原型
BOOL WINAPI UnmapViewOfFile(_In_LPCVOID lpBaseAddress);
  • 示例
UnmapViewOfFile((LPCVOID)pszText);

原文作者:7bfedbe4863a

原文地址:内存映射文件(版权归原文作者所有,侵权留言联系删除)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值