linux 儲存對映

2021-07-09 17:02:01 字數 877 閱讀 2598

儲存對映:能將乙個磁碟檔案對映到記憶體空間,我們可以通過指標來使用這個資料。如果設定相應的prot那麼我們寫記憶體是,磁碟空間的資料也相應改變。

依賴於這幾個函式

mmap(.......)   用於建立一塊記憶體空間  並  與磁碟檔案建立聯絡

mprotect              改變對映位址空間的許可權

msync                  將記憶體空間中的資料沖洗到磁碟

munmap             解除對映(如果不解除對映  會產生記憶體洩漏)

與對映區有關的訊號:sigsegv  sigbus

由於這些特點儲存對映可以用於程序間通訊,通訊時多個程序還要做好同步工作

int main(int argv, char **argc)

if((re = fstat(fd, &stat_buf)) < 0)

buf = (char *)mmap(0,stat_buf.st_size,prot_read | prot_write, map_shared, fd, 0);

//write(stdout_fileno, buf, stat_buf.st_size);

memcpy(buf, *(argc+1), strlen(*(argc+1)));

while(1)

return 0;

}編譯成程式mytest

#./mytest

另乙個終端

#cat mydata

hello2221111111111111111111111111

1111111111111111111111111111111111

確定寫入記憶體的資料確實被對映到硬碟了

疑問:對於記憶體與硬碟的互動的時間並不清楚???????????

位址對映,儲存器對映

學習乙個事項的時候,注意三點 是什麼,有什麼用 功能 如何配置 實現 操作 1,為了保證 cpu執行指令時可正確訪問 儲存單元 需將使用者程式 中的邏輯 位址轉換 為執行時由機器 直接定址 的實體地址,這一過程稱為位址對映。2,位址對映結構 在tornado target h vmlib.h檔案中 ...

儲存對映I O

1.儲存對映i o 使得在不使用read,write函式的情況下執行i o操作。它是一種基於記憶體區域的高階i o操作。2.實現的方法 mmap函式 將給定的乙個檔案對映到乙個儲存區域中。include void mmap void start,size t length,int prot,int ...

儲存器對映

通過賦予每個任務不同的虛擬 物理 位址轉換 對映,支援不同任務之間的保護。位址轉換 函式在每乙個任務中定義,在乙個任務中的 虛擬位址 空間對映到 物理記憶體 的乙個部分,而另乙個任務的虛擬位址空間對映到物理儲存器中的另外區域。就是把乙個位址連線到另乙個位址。例如,記憶體單元a的位址為x,把它對映到位...