分类: C/C++
2008-08-04 09:37:21
本文介绍利用内存映射文件修改大文件:在大文件内存前加入一段数据,若要使用内存映射文件,必须执行下列操作步骤:
当完成对内存映射文件的使用时,必须执行下面这些步骤将它清除:
下面将用一个实例详细介绍这些操作步骤,(本实例的目的就是将一个文件A其内容前面加入一些内容存入文件B,我想大家在程序开发当中会遇到这种情况的)。
一、我们打开关于A文件内核对象,并创建一个关于B文件的内核对象
若要创建或打开一个文件内核对象,总是要调用CreateFile函数:
HANDLE CreateFile( PCSTR pszFileName, DWORD dwDesiredAccess, DWORD dwShareMode, PSECURITY_ATTRIBUTES psa, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
CreateFile函数拥有好几个参数,这里只重点介绍前3个参数,即pszFileName,dwDesiredAccess和dwShareMode。
你可能会猜到,第一个参数pszFileName用于指明要创建或打开的文件的名字(包括一个选项路径),第二个参数dwDesiredAccess用于设定如何访问该文件的内容,可以设定下表所列的4个值中的一个。
值 | 含义 |
0 | 不能读取或写入文件的内容,当只想获得文件的属性时,请设定0 |
GENERIC_READ | 可以从文件中读取数据 |
GENERIC_WRITE | 可以将数据写入文件 |
GENERIC_READ|GENERIC_WRITE | 可以从文件中读取数据,也可以将数据写入文件 |