匿名映射區的創建

在使用共享內存實現進程間通信的時候,我們有時候不想借助文件來實現,也就是通過匿名映射區

Linux中,我們可以使用MAP_ANON這個宏定義,具體用法是

 p = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED|MAP_ANON,-1,0);

 mmap函數的第四個參數或上MAP_ANON就可以了,

同時後面的第五個參數由於不依賴文件,就設置爲-1即可。

 

在其他的類Unix中,可能沒有MAP_ANON這個宏,可以藉助/dev/zero這個文件,它是一個僞文件,大小可以隨意設置。
具體可以用如下兩步來實現:

fd = open("/dev/zero",O_RDWR);

p = mmap(NULL,size,PORT_READ|PROT_WRITE,MAP_SHARED,fd,0);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章