Linux共享内存实践(2)
来源:互联网 发布:软件变成英文 编辑:程序博客网 时间:2024/06/09 14:51
shmdt函数
功能:将共享内存段与当前进程脱离
原型:
参数:
shmaddr: 由shmat所返回的指针
返回值:
成功返回0;失败返回-1
注意:将共享内存段与当前进程脱离不等于删除共享内存段
shmctl函数
功能:用于调控/获取共享内存属性
原型:
参数:
shmid:由shmget返回的共享内存标识码
cmd:将要采取的动作(三个取值见下)
buf:指向一个保存着共享内存的模式状态和访问权限的数据结构
返回值:
成功返回0;失败返回-1
由上图可知:即使其中一个进程执行了IPC_RMID(只要该共享内存引用计数不为0),该共享内核还是可读的(但此时必须该读进程是已经连接到该共享内存的,不然的话,写进程虽然没有将共享内存真正的删掉,但是其键值已经变为0x00000000(Private),此时其他进程是连接不上的)!
总结:
1.共享内存被别的程序占用,则删除该共享内存时,不会马上删除
2.此时会出现一个现象:该共享内存的key变为0x00000000,变为私有
3.此时还可以读,但必须还有办法获取该共享内存的ID(shmid),因为此时试图通过该共享内存的key获取该共享内存,都是白费的!
0 0
- Linux共享内存实践(2)
- Linux共享内存实践(1)
- Linux IPC实践(10) --Posix共享内存
- Linux IPC实践 --System V共享内存
- Linux IPC实践(10) --Posix共享内存
- Linux IPC实践(8) --共享内存/内存映射
- Linux IPC实践(8) --共享内存/内存映射
- 共享内存实践总结
- Linux编程实践----共享内存的演示(IPC)
- Linux IPC实践(9) --System V共享内存
- Linux IPC实践(9) --System V共享内存
- Linux IPC实践(9) --System V共享内存
- 2--共享内存的实践到内核--共享内存的映射
- 2--共享内存的实践到内核--共享内存的映射
- Linux进程间通信(IPC)编程实践(七)共享内存的使用-System V共享内存(API)
- Linux进程间通信(IPC)编程实践(八)共享内存的使用-POSIX 共享内存(API)
- linux 共享内存--系统V共享内存
- linux 共享内存--System V共享内存
- 03全局类IMApplication添加操作联系人(好友)列表的方法和设置用户名和密码的方法
- Python打印格式化与字符串
- ffmpeg接口函数介绍(续1)
- java位运算原理
- MFC中的GDI绘图(2)
- Linux共享内存实践(2)
- 什么是LFS和gentoo CFLAGS参数详解
- 编程实现路由算法——迪杰斯特拉算法
- Struts2与extjs集成
- c# 实现简单的发送邮箱
- android项目解刨之时间轴
- linux ubuntu 上安装 mysql
- 关于Makefile,Makefile.in,Makefile.am的问题
- Cocos2d-x 3.0 动作,动画