天天看点

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、首先将要切割的文件通过映射方式得到一个映射对象,如下所示:

windows核心编程--7、内存映射文件

    2、接着对取该文件,将读取出来的二进制流平静分配到4个字节数组中,之后在关闭该映射对象,如下所示:

windows核心编程--7、内存映射文件

    3、最后创建四个文件映射对象,分别写入4个字节数组中的内容即可,在关闭这4个映射对象,如下所示:

windows核心编程--7、内存映射文件