Use `mmap` to create shared objects
- November 20, 2019
- Liu, An-Chi 劉安齊
當我們有很多 processes 時,並想用實現 shared memory 處理共用資料時,就可以使用 shared memory,來實作。建立 shared memory 可以使用 mmap
或是 System V shmget
,但根據 Stack Overflow 「How to use shared memory with Linux in C」回答,shmget
已經有點過時,mmap
則比較新和彈性。
Shared memory 讓我們可以建立一塊共用的記憶體空間,mmap
會回傳一塊記憶體空間的指標,型別是 void *
,如果我們想要放資料進去,可以用 memcpy
將物件、字串或任何東西拷貝進去。我們也可以直接將 void *
轉型成物件指標,這樣就建立 shared object,不同 process 可以直接對 process 存取物件。