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