儲存對映I O

2021-06-18 08:36:38 字數 888 閱讀 6341

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...