VC 中使用記憶體對映檔案處理大檔案 2

2021-04-21 22:07:03 字數 590 閱讀 3232

system_info sinf;

getsysteminfo(&sinf);

dword dwallocationgranularity = sinf.dwallocationgranularity;

引數dwnumberofbytestomap指定了資料檔案的對映長度,這裡需要特別指出的是,對於windows 9x作業系統,如果mapviewoffile()無法找到足夠大的區域來存放整個檔案對映物件,將返回空值(null);但是在windows 2000下,mapviewoffile()只需要為必要的檢視找到足夠大的乙個區域即可,而無須考慮整個檔案對映物件的大小。

bool unmapviewoffile(lpcvoid lpbaseaddress);

除了前面這些必須的api函式之外,在使用記憶體對映檔案時還要根據情況來選用其他一些輔助函式。例如,在使用記憶體對映檔案時,為了提高速度,系統將檔案的資料頁面進行快取記憶體,而且在處理檔案對映檢視時不立即更新檔案的磁碟映像。為解決這個問題可以考慮使用flushviewoffile()函式,該函式強制系統將修改過的資料部分或全部重新寫入磁碟映像,從而可以確保所有的資料更新能及時儲存到磁碟。

VC 中使用記憶體對映檔案處理大檔案

vc 中使用記憶體對映檔案處理大檔案 摘要 本文給出了一種方便實用的解決大檔案的讀取 儲存等處理的方法,並結合相關程式 對具體的實現過程進行了介紹。引言 檔案操作是應用程式最為基本的功能之一,win32 api和mfc均提供有支援檔案處理的函式和類,常用的有win32 api的createfile ...

VC 中使用記憶體對映檔案處理大檔案

檔案操作是應用程式最為基本的功能之一,win32 api和mfc均提供有支援檔案處理的函式和類,常用的有win32 api的createfile writefile readfile 和mfc提供的cfile類等。一般來說,以上這些函式可以滿足大多數場合的要求,但是對於某些特殊應用領域所需要的動輒幾...

VC 中使用記憶體對映檔案處理大檔案

引言 檔案操作是應用程式最為基本的功能之一,win32 api和mfc均提供有支援檔案處理的函式和類,常用的有win32 api的createfile writefile readfile 和mfc提供的cfile類等。一般來說,以上這些函式可以滿足大多數場合的要求,但是對於某些特殊應用領域所需要的...