1. 程式人生 > 其它 >淺析IPC之Posix共享記憶體

淺析IPC之Posix共享記憶體

共享記憶體是IPC的一種方式,以下簡要介紹Posix實現共享記憶體的簡單原理

1.原理

Posix共享記憶體藉助檔案完成。某一個程序建立一個共享記憶體檔案,將這個檔案對映到該程序的虛擬地址空間,對它進行讀寫。另一個程序也將這個共享記憶體檔案對映到它的虛擬地址空間。這個共享記憶體檔案實際上只對映到一塊實體記憶體空間內,這塊實體記憶體空間同時對應著兩個程序虛擬地址空間的一部分,這兩個程序就可以藉助這塊實體記憶體進行通訊了。

2.實現

int shm_open(const char *name, int oflag, mode_t mode);

這個函式類似於open函式,可以建立或者開啟一個共享記憶體檔案。當一個共享記憶體檔案通過shm_open函式建立後,它就位於/dev/shm目錄下。然後可以使用mmap函式將該共享記憶體檔案對映到一個程序內對它共享記憶體檔案進行修改。另一個程序通過shm_open函式開啟該共享記憶體檔案,也可以對它進行操作。這就實現了兩個程序之間的通訊。

參考:
https://www.cnblogs.com/gdk-0078/p/5165242.html
https://blog.csdn.net/ababab12345/article/details/102931841