檔案對應

檔案對應 是檔案內容與進程虛擬位址空間一部分的關聯。 系統會建立 檔案對應物件 , (也稱為 區段物件) 來維護此關聯。 檔案檢視是進程用來存取檔案內容的虛擬位址空間部分。 檔案對應可讓進程同時使用隨機輸入和輸出 (I/O) 和循序 I/O。 它也可讓程式有效率地使用大型資料檔案,例如資料庫,而不需要將整個檔案對應到記憶體中。 多個進程也可以使用記憶體對應檔案來共用資料。

使用指標處理讀取和寫入檔案檢視,就像使用動態配置的記憶體一樣。 使用檔案對應可提升效率,因為檔案位於磁片上,但檔案檢視位於記憶體中。 進程也可以使用 VirtualProtect 函式操作檔案檢視。

下圖顯示磁片上的檔案、檔案對應物件和檔案檢視之間的關聯性。

磁片上的檔案、檔案對應物件和檔案檢視之間的關聯性。

磁片上的檔案可以是您想要對應至記憶體的任何檔案,也可以是系統頁面檔案。 檔案對應物件可以包含檔案的所有或只有一部分。 它是由磁片上的檔案所支援。 這表示當系統交換出檔案對應物件的頁面時,對檔案對應物件所做的任何變更都會寫入檔案。 當檔案對應物件的頁面交換回時,會從檔案還原這些頁面。

檔案檢視可以包含檔案對應物件的所有或只有一部分。 程式會透過檔案檢視操作檔案。 進程可以針對檔案對應物件建立多個檢視。 每個進程所建立的檔案檢視都位於該程式的虛擬位址空間中。 當進程需要來自目前檔案檢視中之檔案部分的資料時,它可以取消對應目前的檔案檢視,然後建立新的檔案檢視。

當多個進程使用相同的檔案對應物件來建立本機檔案的檢視時,資料會一致。 也就是說,檢視會包含磁片上檔案的相同複本。 如果您想要在多個進程之間共用記憶體,檔案不能位於遠端電腦上。

如需詳細資訊,請參閱下列主題: