首页 > 代码库 > Linux 进程间共享内存 SYSTEMV
Linux 进程间共享内存 SYSTEMV
- #include <sys/ipc.h>
- #include <sys/shm.h>
- int shmget(key_t key, int size, int shmflag)
key取值为IPC_PRIVATE时,shmflag应为IPC_CREAT,则新建共享内存
key取值不为IPC_PRIVATE则应为已创建的key值,shmflag不应包含IPC_CREAT和IPC_EXCL,且大小小于等于原共享内存大小
成功则返回共享内存id,失败返回-1
- void *shmat(int shmid, const void *shmaddr, int shmflag)
shmid为共享内存id
shmaddr为空则系统自动分配内存
shmflag可以设为SHM_RDONLY则为只读
成功则返回映射地址,失败返回-1
- int shmdt(const void *shmaddr)
解除shmaddr与共享内存间的关系
成功则返回0,失败则返回-1
- int shmctl(int shmid, int cmd, struct shmid_ds *buf)
shmid为共享内存id
cmd为命令,为IPC_STAT则是获取共享内存配置,为IPC_RMID则是删除共享内存和相关内容
成功则返回0,失败则返回-1
示例代码:https://github.com/jhc888007/test/blob/master/shm_systemv.cpp
参考文献:blog.csdn.net/lfw19891101/article/details/5994927
Linux 进程间共享内存 SYSTEMV
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。