共享記憶體 shmdt函式和shmctl函式

2021-10-21 08:21:48 字數 802 閱讀 7736

斷開共享記憶體連線

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 共享記憶體的獲取...