1..儲存對映i/o:
使得在不使用read,write函式的情況下執行i/o操作。它是一種基於記憶體區域的高階i/o操作。
2.實現的方法:
mmap函式:
將給定的乙個檔案對映到乙個儲存區域中。
#include
void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offset);
成功返回的是對映區的起始位址,錯誤則返回map_failed
引數說明:
start引數指定對映區的起始位址,通常用0表示由系統進行選擇。
length表示要對映的位元組數。
fd是要被對映的檔案描述符。
offset是要對映的位元組在檔案中的起始偏移量。
prot引數說明老吳對對映訪問區的保護要求:
prot_read:可讀
prot_write:可寫
prot_exec:對映區可執行
prot_none:不可訪問
可以是任意組合(按位或)
指定的對映區的許可權不能超過檔案open時指定的許可權。
示意圖flags引數影響對映儲存區的多種屬性:
map_fixed:函式返回值等於實參start。將start指定為0可以獲得最大的可移植性。
map_shared:表示儲存操作修改對映檔案,即對對映區的操作相當於對原始檔的操作。
map_private:表示對映區的儲存操作導致建立該檔案的乙個私有拷貝,後續操作的只是這個對映區。
map_shared和map_private兩者必須制定乙個,不能同時制定。
Memory Map Linux 儲存對映IO
本文主要總結自unix環境高階程式設計以及redhat6.5系統man函式 include void mmap void addr,指定對映區的起始位址。通常設定為0,由系統選擇該對映區起始位址 size t len,對映的位元組數 int prot,對對映儲存區的保護要求 int flag,int...
程序間通訊 儲存I O對映
儲存i o對映能將磁碟檔案對映到儲存空間的乙個緩衝區上,於是,從緩衝區讀資料時,就相當於讀檔案中的相應位元組。mmap函式 將檔案對映到乙個儲存區域 include void mmap void addr,size t len,int prot,int flag,int fd,off t off 執...
我對儲存對映I O的理解
儲存對映,就是講磁碟檔案對映到記憶體,則對相應記憶體的操作就相當於對磁碟檔案的操作。1.void mmap void addr,size t len,int pro,int flags,int filedes,off t offset 建立儲存對映 作用 一 就是建立檔案filedes中從offse...