找回密码
 立即注册
收起左侧

linux共享内存释放问题

5
回复
11075
查看
[复制链接]
累计签到:25 天
连续签到:1 天
来源: 2017-2-13 16:33:19 显示全部楼层 |阅读模式
5Qter豆
请教各位qt大神。有没有什么办法能够解决qt进程在linux下,异常结束后,共享内存未正常释放掉的问题(windows中一旦进程结束则共享内存释放)。qt文档中也说了,linux下共享内存未正常detach的话,共享内存依旧存在,而这种情况有可能导致:一旦进程刚进入共享内存锁定,若进程异常结束,共享内存来不及释放,则进程再次attach会挂起,进程无法正常运行。
当然,最好是保证不在共享内存锁定的时候产生异常;但多进程时,不怕一万就怕万一。

最佳答案

查看完整内容

http://blog.csdn.net/taiyang1987912/article/details/45642079
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2017-2-13 16:33:20 显示全部楼层
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2017-2-14 16:45:32 显示全部楼层
对Linux不熟,但是我想是否可以执行某个Linux命令来解决这个问题?这样的话,每次Qt程序启动的时候,先执行这个命令即可。
回复

使用道具 举报

累计签到:25 天
连续签到:1 天
2017-2-15 08:57:10 显示全部楼层
stlcours 发表于 2017-2-14 16:45
对Linux不熟,但是我想是否可以执行某个Linux命令来解决这个问题?这样的话,每次Qt程序启动的时候,先执行 ...

是有一个ipc命令,可是在查看共享内存时,发现系统中的共享内存比我创建的要多(暂时只知道从数量上判断),而我却没办法确定哪个内存是我创建的,不知道怎么删除!
所以就采用全部删除的方法,所有内存key都变为0x00000000,但使用命令还是能看到,只是变零了。而删掉多余的内存,我却不知道会不会对系统造成影响。
所以目前想到的最可到的就是重启linux。
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2017-2-15 17:11:48 显示全部楼层
说明你对Linux也不熟啊,照着手册找找其它命令或者参数。话说你干嘛非要用共享内存?是为了single还是为了交互?为了single还有其它三种方案哦~
回复

使用道具 举报

累计签到:25 天
连续签到:1 天
2017-2-16 09:00:26 显示全部楼层
stlcours 发表于 2017-2-15 17:11
说明你对Linux也不熟啊,照着手册找找其它命令或者参数。话说你干嘛非要用共享内存?是为了single还是为了 ...

目的是为了多进程之间的高速数据交互。
个人对linux肯定不熟啊,要不然也不会碰到诸多问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了