mmap is sometimes used for Interprocess Communication (IPC). On modern operating systems mmap is typically preferred to the System V IPC Shared Memory facility.
~ http://en.wikipedia.org/wiki/Mmap
mmap(), 即memory map,用來將某個檔案的內容map到memory,使得各個process之間可以利用shared memory的方式來做資料的存取。
例如,在一個存取資料的程式中,我們可能透過fread來將資料讀出,經過修改後,再經由fwrite將資料寫入,但fread與fwrite皆需先透過fseek找出讀寫的記憶體位置。
然而,mmap()一開始會分配固定的記憶體區塊給某個檔案,因此多個程式便可以直接存取該共同記憶體區塊裡的任何資料。當然,shared memory可能引起race condition等問題,關於這部份可以參考其它資料說明。
[Ref.]
Beginning Linux Programming 4/e, Richard Stones and Neil Matthew
0 意見:
Post a Comment