斷開共享記憶體連線
int
shmdt
(const
void
*shmaddr)
;//such as:if(
shmdt
(shmaddr)==-
1)
引數 shmaddr
shmat函式的返回值
共享記憶體管理
int
shmctl
(int shmid,
int cmd,
struct shmid_ds *buf)
;//such as:if(
shmctl
(shmid,ipc_rmid,
null)==
-1)//刪除共享記憶體
第乙個引數 shmid
shmget函式的返回值
第二個引數 cmd
ipc_stat:得到共享記憶體的狀態,把共享記憶體的shmid_ds結構複製到buf中
ipc_set:改變共享記憶體的狀態,把buf所指的shmid_ds結構中的uid、gid、mode複製到共享記憶體的shmid_ds結構內
ipc_rmid:刪除這片共享記憶體
第三個引數 buf
共享記憶體管理結構體。具體說明參見共享記憶體核心結構定義部分
刪除共享記憶體的時候,一般設定為null
shm(共享記憶體API)
shm 共享記憶體api 1 共享記憶體的特點 1 減少進入核心空間的次數 2 直接使用位址來讀寫快取時,效率會更高,適用於大資料量的通訊。2 共享記憶體的使用步驟 1 程序呼叫shmget函式,建立新的或獲取已有共享記憶體 2 程序呼叫shmat函式,將物理記憶體對映到自己的程序空間 3 程序呼叫...
mmap記憶體對映區和shm共享記憶體的區別
linux中的兩種共享記憶體。一種是我們的ipc通訊system v版本的共享記憶體 shm 另外的一種就是記憶體對映i o mmap函式 1.mmap記憶體對映 記憶體對映是通過操作記憶體來實現對檔案的操作,這樣可以加快執行速度,不是專門用來進行資料通訊的 但它也可以用於程序間的通訊 2.shm共...
程序間通訊之共享記憶體 shm
include include include struct shm共享記憶體使用的結構體的宣告 int main int argc,const char argv shmid shmget key,sizeof struct shm ipc creat ipc excl 0666 共享記憶體的獲取...