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

1.png

    2、接着對取該文件,將讀取出來的二進制流平靜分配到4個字節數組中,之後在關閉該映射對象,如下所示:

2.png

    3、最後創建四個文件映射對象,分別寫入4個字節數組中的內容即可,在關閉這4個映射對象,如下所示:

3.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章