程序間共享記憶體

2021-07-27 03:51:10 字數 586 閱讀 6342

位於系統的交換分割槽

#include

#incude

int shmget(key_t key, size_t size, int shm***)

ipc_excl | ipc_creat一起使用可確保共享記憶體已存在時返回錯誤

void *shmat(int shm_id, const void* shm_addr,  int shm***)

int shmdt(const void* shmaddr)

int shmctl(int shm_id, int command, struct shmid_ds *buf)

ipc_stat:獲取共享記憶體的狀態,把共享記憶體的shmid_ds結構複製到buf中

ipc_set:改變共享記憶體的狀態,把buf所指的shmid_ds結構中的uid、gid、mode複製到共享記憶體的shmid_ds結構內

ipc_rmid:刪除這片共享記憶體

ipc_stat:得到共享記憶體的狀態,把共享記憶體的shmid_ds結構複製到buf中

程序間通訊 共享記憶體

下面是自己寫的乙個簡單的共享記憶體的程序間通訊的例子。共享記憶體是用於程序間大量資料共享的一種方法。include include include include include include int main if buf1 shmat shmid,0,0 void 1 strcpy buf1,...

linux 程序間共享記憶體

可以採用sysv的shmget shmat 實現。但是我更喜歡shm open mmap 更簡單。writer.c include include include include include include include include struct ofs stat int main voi...

程序間通訊 共享記憶體

共享記憶體是被多個程序共享的一部分物理記憶體。共享記憶體是程序間共享資料的一種最快的方式,乙個程序向共享記憶體區域寫入資料,共享這個記憶體區域的所有程序就可以立刻看到其中的內容。共享記憶體實現分兩個步驟 建立共享記憶體,使用shmget函式 對映共享記憶體,使用shmat函式 共享記憶體是一種最為高...