利用mmap實現父子程序通訊

2021-10-01 19:59:13 字數 619 閱讀 8274

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