Windows核心程式設計 程序間通訊之檔案記憶體對映

2022-08-21 02:27:09 字數 1173 閱讀 2713

檔案操作是應用程式最為基本的功能之一,win32 api和mfc均提供有支援檔案處理的函式和類,常用的有win32 api的createfile()、writefile()、readfile()和mfc提供的cfile類等。一般來說,以上這些函式可以滿足大多數場合的要求,但是對於某些特殊應用領域所需要的動輒幾十gb、幾百gb、乃至幾tb的海量儲存,再以通常的檔案處理方法進行處理顯然是行不通的。對於上述這種大檔案的操作一般是以記憶體對映檔案的方式來加以處理的

包括:開啟檔案、讀、寫、關閉、檔案指標。都在file i/o functions下,可以通過msdn檢視

使用記憶體對映:createfile->readfile-> writefile->close

handle hfile = createfile(

"readme.txt",

generic_read | generic_write, //對檔案進行讀寫操作

file_share_read, //允許其他人對此檔案進行讀操作

null,

open_existing, //開啟已經存在的檔案,如果檔案不存在,則函式失敗

file_attribute_normal, //沒有別的需求,就填這個巨集值

null

);if (hfile == invalid_handle_value)

//讀取

char arybuff[maxword] = ;

bool bret = readfile(hfile, arybuff, sizeof(arybuff), null, null);

if (!bret)

//寫入

char arybufftowrite = ;

bret = writefile(hfile, arybufftowrite, sizeof(arybufftowrite), null, null);

if (!bret)

//關閉檔案

closehandle(hfile);

可以看出記憶體的變化:

讀取寫入

windows核心程式設計 程序

程序定義成乙個正在執行的程式的例項,包含兩個部分 1 乙個核心物件,作業系統用它來管理程序。核心物件也是系統儲存程序統計資訊的地方。2 乙個位址空間,其中包含所有可執行 exe檔案 或dll模組的 和資料。此外,還包括動態記憶體分配,比如執行緒堆疊和堆的分配。windows支援兩種型別的應用程式 g...

windows核心程式設計 程序初步

程序 什麼是程序,系統如何建立乙個核心物件來管理程序。如何通過程序核心物件來操作乙個程序。程序的屬性,以及查詢和修改程序屬性的函式。程序的結束。乙個程序,就是乙個正在執行的程式!乙個程式,可以產生多個程序。程序是死的,程序必須有乙個執行緒!primary thread 如果程序內所有執行緒退出,那麼...

windows 核心程式設計 筆記之 程序

內容 windows程序 process 如上圖所示,windows任務管理器中的程序tab列中列出了系統管理的所有程序,我們經常利用任務管理器來結束某個沒有得到響應的應用程式,但是,作為乙個windows程式設計師,我們應該有這樣的疑問 程序是什麼東西?系統為什麼會存在程序?程序有哪些屬性?程序是...