码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 进程间共享内存 SYSTEMV

时间:2017-06-18 00:00:10      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:映射   tps   shm   相关   key值   jpg   tail   img   rdo   

技术分享

  • #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

标签:映射   tps   shm   相关   key值   jpg   tail   img   rdo   

原文地址:http://www.cnblogs.com/jhc888007/p/7041710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!