一、前言
該系列前幾篇文章:
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個映射對象,如下所示: