目錄
- system v IPC簡介
- 共享記憶體需要用到的函式介面
- shmget函式--獲取物件ID
- shmat函式--獲得對映空間
- shmctl函式--釋放資源
- 共享記憶體實現思路
- 注意
system v IPC簡介
訊息佇列、共享記憶體和訊號量統稱為system v IPC(程序間通訊機制),V是羅馬數字5,是UNIX的AT&T分支的其中一個版本,一般稱它們為IPC物件。這些物件的操作介面比較類似,在系統中它們都會使用一種名為key的鍵值來統一標識。程序每次“開啟”一個IPC物件,就會獲得一個表徵這個物件的ID,ID可以操作這個物件。IPC的物件是唯一的,但是ID是可變的。
共享記憶體需要用到的函式介面
shmget函式--獲取物件ID
shmat函式--獲得對映空間
shmctl函式--釋放資源
shmid: 共享記憶體段的識別符號,通常是由shmget()函式返回的共享記憶體識別符號。
cmd: 控制命令,用於指定要執行的操作。常見的控制命令包括:
IPC_STAT: 獲取共享記憶體段的狀態資訊,並將其儲存在struct shmid_ds *buf中。
IPC_SET: 設定共享記憶體段的狀態資訊,buf中包含要設定的新值。
IPC_RMID: 刪除共享記憶體段。
共享記憶體實現思路
注意
共享記憶體是sytem-v IPC 中通訊效率最高的,保護性不高。