内存映射文件的主要就是把文件映射到内存当中来
这样一个大的文件就变得很小一个地址空间
而根据API函数的说明得知:内存映射文件主要是通过对映射的文件进行操作,其中的存放读取文件的IO操作都是系统操作的
那么当你修改了映射文件上的内容时,然后你退出映射文件操作,此时应该系统接着对文件写入工作进行IO操作(当文件数据足够大的时候,这个时间可能会比较长的)。那么当系统在操作的时候,然后进程如果对这个文件进行了读数据操作,那么此时的数据肯定不对的?
问一下:系统关于这个问题是不是给出了自己一个保护原则?还是我们可以通过系统发出什么消息来确定上次的写操作已经完成?有谁研究过这些问题吗?
这样一个大的文件就变得很小一个地址空间
而根据API函数的说明得知:内存映射文件主要是通过对映射的文件进行操作,其中的存放读取文件的IO操作都是系统操作的
那么当你修改了映射文件上的内容时,然后你退出映射文件操作,此时应该系统接着对文件写入工作进行IO操作(当文件数据足够大的时候,这个时间可能会比较长的)。那么当系统在操作的时候,然后进程如果对这个文件进行了读数据操作,那么此时的数据肯定不对的?
问一下:系统关于这个问题是不是给出了自己一个保护原则?还是我们可以通过系统发出什么消息来确定上次的写操作已经完成?有谁研究过这些问题吗?
解决方案 »
- vc2010里groupbox控件的autosize属性问题
- MDI 双击缩略图的小picture控件,出现子窗口并且显示这个原图
- Ado的com对象,为什么有"."方法同时也有"->"的方法,它到底是不是一个指针?
- 问个老问题,无法定位程序输入点getnameinfo于动态链接库ws2_32.dll上 关于浩方的
- 对话框里面有个按钮可以按下去弹起来,关闭对话框怎么保持状态
- 急,谁能给我一个vc ado连接到mysql某个数据库的连接字串
- 生成的wav文件data字段在42字节处,理应在40才对吧
- 关于NtQueryInformationThread的问题。。。
- 二个基础问题
- MFC ActiveX移植MDI时,用IE窗口加载后,创建无模对话框因为找不到owner窗口报错。
- 程序注册的原理大致是什么?
- 求救:问几个简单的关于内存映射文件操作的问题
如果文件大,是有速度慢的问题,你可以单独开一个线程负责文件操作。
先UnmapViewOfFile
然后再FlushViewOfFile这样既保证了数据写入
又保证了处理完这步以后 数据肯定是写入到文件中去的?
然后再UnmapViewOfFile
另,FlushViewOfFile不一定要到调用UnmapViewOfFile之前才做,修改了映射文件之后就可以及时调用了。
然后再UnmapViewOfFile
哈哈,来晚了