map_private:私有對映,父子程序各自獨佔對映區
map_shared:共享對映區,父子程序共享對映區
父子等有血緣關係的程序之間也可以通過mmap 建立的對映區來完成資料通訊,但對應的要在建立對映區的時候指定對應的額標誌位引數flags;
#include #include #include #include #include #include int var=100;
/*父子程序共享*/
/*1-開啟檔案*/
/*mmap 建立的對映區*/
int main(void)
//刪除臨時檔案
unlink("/home/zjl/source.c");
ftruncate(fd,4); //改變檔案的大小
//開闢檔案記憶體
p=(int*) mmap(null,4,prot_read|prot_write,map_shared,fd,0);
if(p==map_failed)
close(fd);
pid=fork(); //建立程序
if(pid==0)else
} }
Linux程序共享通訊 mmap實現
使用mmap記憶體對映實現一端寫,另一端讀的程序間通訊 寫端 write.c write.c include include include include include include include 對映記憶體大小 define maplen 0x100 定義乙個學生資訊結構體 struct ...
程序間通訊 mmap
void mmap void addr,size t length,int prot,int flags,int fd,off t offset 建立共享記憶體對映 引數 addr 指定對映區的首位址。通常傳null,表示讓系統自動分配 length 共享記憶體對映區的大小。檔案的實際大小 prot...
Linux系統程式設計之mmap實現父子程序通訊
原理 在映 對映區之後,父子都可以拿到對映的記憶體區域的記憶體位址,如果乙個程序改變了記憶體區域的內容,另外乙個去讀的時候會有變化。先建立對映區在fork 所以,應該先建立對映區再fork。include include include include include include include...