目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...
目錄
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 中通信效率最高的,保護性不高。