美文网首页
内存映射文件

内存映射文件

作者: 7bfedbe4863a | 来源:发表于2018-05-11 20:50 被阅读0次
    创建内存映射文件 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);
    

    相关文章

      网友评论

          本文标题:内存映射文件

          本文链接:https://www.haomeiwen.com/subject/edeqdftx.html