windows核心编程--7、内存映射文件
一、前言
该系列前几篇文章:
windows核心编程--1、使用vs2019编写第一个win32项目
windows核心编程--2、windows的画笔画刷以及一些简单的应用
windows核心编程--3、有关进程的三个函数
windows核心编程--4、线程和线程同步
windwos核心编程--5、虚拟内存相关函数及其应用
windows核心编程--6、使用共享栈端实现进程数据共享
二、相关工具
IDE:Visual Studio 2019
三、相关函数
1、CreateFile
函数,作用为打开文件,也可以创建文件,相关用法参见百度百科:https://baike.baidu.com/item/CreateFile/9621657?fr=aladdin
2、GetFileSize
函数,作用为获取文件大小,具体用法参见百度百科:https://baike.baidu.com/item/GetFileSize/9641889?fr=aladdin
3、CreateFileMapping
函数,作用为创建一个内存映射文件对象,具体用法参见百度百科:https://baike.baidu.com/item/CreateFileMapping/9621670?fr=aladdin
4、GetLastError
函数,作用为获取错误代码,具体用法参见百度百科:https://baike.baidu.com/item/GetLastError/4278820?fr=aladdin
5、MapViewOfFile
函数,作用为将文件映射对象映射到当前应用程序的地址空间中,具体用法参见百度百科:https://baike.baidu.com/item/MapViewOfFile/9665143?fr=aladdin
6、memcpy
函数,作用为拷贝内存,具体用法参见百度百科:https://baike.baidu.com/item/memcpy/659918?fr=aladdin
7、UnmapViewOfFile
函数,作用为释放一个内存映射,具体用法参见百度百科:https://baike.baidu.com/item/UnmapViewOfFile/9711637?fr=aladdin
8、CloseHandle
函数,作用为关闭一个句柄,具体用法参见百度百科:https://baike.baidu.com/item/CloseHandle/9621618?fr=aladdin
四、实验要求
实现文件切割功能,平均将文件切割为四部分。
五、实验步骤
1、首先将要切割的文件通过映射方式得到一个映射对象,如下所示:
2、接着对取该文件,将读取出来的二进制流平静分配到4个字节数组中,之后在关闭该映射对象,如下所示:
3、最后创建四个文件映射对象,分别写入4个字节数组中的内容即可,在关闭这4个映射对象,如下所示: