想要有MapViewOfFile内存映射写大文件的例子。

hztj2005 hztj2005 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我一直在用MapViewOfFile内存映射,读大文件到内存。现在想用MapViewOfFile内存映射写大文件,但没有经验。
那位朋友有经验指点一下。
下面是网上的内存映射的读代码,复制到这里便于问题讨论,MapViewOfFile读和写区别在哪里。

BOOL CMemFileDlg::LoadFile(CString strFileName)
{
HANDLE hFile,hMapping;
void *basePointer;
if((hFile=CreateFile(strFileName,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0))==INVALID_HANDLE_VALUE)
{
AfxMessageBox("没有成功打开文件");
return FALSE;
}
if(!(hMapping=CreateFileMapping(hFile,0,PAGE_READONLY|SEC_COMMIT,0,0,0)))//创建一个文件映射内核对象
{
AfxMessageBox("没有成功创建文件句柄");
CloseHandle(hFile);
return FALSE;
}
if(!(basePointer=MapViewOfFile(hMapping,FILE_MAP_READ,0,0,0)))//将文件数据映射到进程空间
{
AfxMessageBox("没有成功映射");
CloseHandle(hMapping);
CloseHandle(hFile);
return FALSE;
}
CloseHandle(hMapping);
CloseHandle(hFile);
m_strText=(LPSTR)basePointer;
UnmapViewOfFile(basePointer);//从进程空间解除映射
return TRUE;
}
...全文

相关推荐

内存映射修改大文件_内存映射_MemoryFile_超大文件读写_

实际工作中遇到超大文件读写时很多系统需要等待较长时间,给用户体验不佳。本文结合源码讲解了超大文件的内存映射读写方式。内存映射方式极大的提高了读写效率,提升用户体验感。

程籽籽

Delphi 中内存映射对于大文件的使用

主要介绍了Delphi 中内存映射对于大文件的使用的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

weixin_38576922

VC中用内存映射文件处理大文件

文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的,本文下面将针对这种Windows核心编程技术展开讨论。

ssss5257

内存映射读写文件的方法

关于内存映射文件读写文件的方法,大家学习了解一下

fishinair123

C++中使用内存映射文件处理大文件

文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数 场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前,对 于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的,本文下面将针对这种Windows核心编程技术展开讨论。

spvm2000
评论 10
收藏 已收藏
分享
返回顶部
hztj2005
VC/MFC 16,550 成员 421,606 内容