Windows核心程式設計 記憶體對映檔案(2)

2021-09-22 16:50:42 字數 401 閱讀 9460

2. 對映到記憶體的資料檔案

這種方法最大的優點是讓系統為我們處理所有與檔案快取有關的操作,我們不必關心分配記憶體、 把檔案中的資料載入記憶體,把資料 寫回檔案、以及釋放記憶體等操作,不過如果 操作過程被打斷,比如斷電,資料可能被破壞。

要使用記憶體對映檔案,需執行以下步驟:

1) 建立或開啟乙個檔案核心物件, createfile()

3)告訴系統把檔案對映物件的部分或全部對映到程序的位址空間中。mapviewoffile()

用完記憶體對映檔案之後,須執行下面的步驟來清理工作:

1)告訴系統從程序位址空間中取消對檔案對映核心物件的對映;unmapvierwoffile()

2)關閉檔案對映核心物件;closehandle()

3)關閉檔案核心物件;closehandle().

Windows核心程式設計 記憶體對映檔案(3)

1.用記憶體對映檔案來處理大檔案 方法就是只對映檔案的乙個檢視,這個檢視只包含檔案的一小部分資料。比如一開始時,把檔案開關的部分對映到檢視中,完成對檢視的訪問後,撤銷這一部分的對映,再把檔案的另一部分對映到檢視,重複此過程,直至完成對整個檔案的訪問。2.記憶體對映檔案和一致性 系統允許把同乙個檔案中...

windows 核心程式設計下的記憶體對映檔案

虛擬記憶體實現的硬體基礎是分頁機制,關於分頁機制本文再此不做介紹。虛擬記憶體實現的另外乙個重要基礎是區域性性原理。區域性性是指程式總是趨向於使用最近使用過的資料和指令,也就是說程式執行時所訪問的儲存器位址分布是相對集中的。區域性性原理是應用虛擬記憶體提公升效能的主要原因,也是虛擬記憶體卻別與記憶體對...

windows記憶體對映

為了說明記憶體對映的使用方式,下面是個人寫的例子 首先建立了乙個大於2gb的檔案,並寫入一定量地測試資料,如下 然後讀取檔案中的資料測試,如下 最後採用記憶體對映的方式對這個大檔案中的字串翻轉,並讀取字串測試,如下 在記憶體對映時,採用多次mapviewoffile將大檔案分開多次對映到記憶體中,這...