我們知道,cpu從 i/o裝置 讀寫的速度非常慢,而從 記憶體 讀寫的速度非常快,如果對乙個檔案需要進行多次讀寫,那麼每一次都呼叫 i/o
讀寫操作時很不划算的,於是我們便將這個檔案 對映 到記憶體中,這樣cpu就可以直接快速讀寫。
mmap記憶體對映是一種空間換時間
的思想。
另外,mmap記憶體對映可以用於 linux中的零拷貝技術
, 詳情可參考此文章:
引數說明:
修改file檔案中第乙個字母為 『m』, 再檢視原始檔file
int
test1()
int
test2()
sleep(1
);cout <<
"message from child: "
<< buff << endl;
exit(0
);}
Linux mmap函式的記憶體對映
include 將檔案對映到記憶體 void mmap void addr,size t len,int prot,int flags,int fildes,off t off len 需要分配的記憶體長度 prot 期望的記憶體保護標識,不能與檔案開啟模式衝突 prot exec 頁內容可以被執行...
記憶體對映檔案
記憶體對映檔案是利用虛擬記憶體把檔案對映到程序的位址空間中去,在此之後程序操作文 件,就像操作程序空間裡的位址一樣了,比如使用 memcpy 等記憶體操作的函式。這種方法能 夠很好的應用在需要頻繁處理乙個檔案或者是乙個大檔案的場合,這種方式處理 io效率比 普通 io效率要高。另外,unix 把它做...
記憶體對映檔案
記憶體對映檔案有三種,第一種是可執行檔案的對映,第二種是資料檔案的對映,第三種是借助頁面交換檔案的記憶體對映.應用程式本身可以使用後兩種記憶體對映.1.可執行檔案對映 windows在執行乙個win32應用程式時使用的是記憶體對映檔案技術.系統先在程序位址空間的0x00400000以上保留乙個足夠大...