社区
Linux/Unix社区
帖子详情
如何 删除所有的消息队列 (高分)
qq277541717
2010-09-08 04:17:06
加精
申请临时的消息队列后,如果程序不是正常退出,消息队列则会留在内核中,并一直累加.
当消息队列数大于配置支持的最大数时,则会出错.我如何才能清除掉那些无效了的消息队列(非手动)?
如:int Key = msgget(IPC_PRIVATE, IPC_CREAT|00666);
msgctl(__Key, IPC_RMID, NULL);
...全文
8229
88
打赏
收藏
如何 删除所有的消息队列 (高分)
申请临时的消息队列后,如果程序不是正常退出,消息队列则会留在内核中,并一直累加. 当消息队列数大于配置支持的最大数时,则会出错.我如何才能清除掉那些无效了的消息队列(非手动)? 如:int Key = msgget(IPC_PRIVATE, IPC_CREAT|00666); msgctl(__Key, IPC_RMID, NULL);
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
88 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
__壹零贰肆__
2012-08-31
打赏
举报
回复
受教了,多谢各位啊
gdwangwei
2011-09-09
打赏
举报
回复
我的方法是:
signal(SIGINT,remove_queue); //用户捕获系统退出等信号量,并删除队列
void remove_queue(int qid)
{
qid = 你创建队列时的id;
/* Remove the queue */
msgctl(qid, IPC_RMID, 0);
exit(1);
}
就ok了!试试吧
shry999
2011-08-16
打赏
举报
回复
学习了!
钱国正
2011-04-30
打赏
举报
回复
ipcrm -Q keyid
JosephMu
2010-09-26
打赏
举报
回复
[Quote=引用 34 楼 cochlea2007 的回复:]
我的建议, 不使用, unix域套接字, 帮你解决各种IPC难题
[/Quote]
同感~~
我觉得最笨的方法:
其实可以程序利用ipcs把得到的消息号写到标准流里面,
然后把消息号取出来。再删除不就行了么?
另一个更笨的方法:
在你创建消息队列的时候,把消息号写到一个文件中,然后退出前处理一下这个文件就好了。
如果是core dump就谁也没办法了。
关键是你退出的有多恶劣。
editionman
2010-09-23
打赏
举报
回复
看看。。。
qq277541717
2010-09-22
打赏
举报
回复
十分感谢lantianye的相告。
hairetz 进程退出绝对回收不太懂。因为进展在段错误异常退出时,无法跟踪到临时创建的信息。
猫已经找不回了
2010-09-21
打赏
举报
回复
我一般是用ftok来做。
然后保证ipc的文件跟创建的ipc资源是同步存在的,如果进程退出绝对回收sem,msg等资源,那也会同步unlink掉对应ipc文件。
如果非要用脚本来善后,也很方便,因为只要不是实际新建了一个ipc资源,每次调用msgget之类的系统调用,同一个key_t必然得到相同的ipc key。所以ipcrm之即可。
gaogao110
2010-09-21
打赏
举报
回复
学习。。。。。。。。
yhd1074694651
2010-09-20
打赏
举报
回复
不懂
··················
monkey7604
2010-09-20
打赏
举报
回复
在程序中调用ipcs也可以呀
yhlzln
2010-09-20
打赏
举报
回复
学习了,感谢楼主
ce_qbliu
2010-09-20
打赏
举报
回复
好复杂哦
lantianye
2010-09-20
打赏
举报
回复
[Quote=引用 58 楼 qq277541717 的回复:]
在退出程序时处理异常,把申请的临时队列删掉。这个工作量不小,且我现在还不太懂。
看来还是写一个脚本搞定。
[/Quote]
正常开发程序必须要做信号处理的,这属于默认的规范了,我这有一个信号的处理函数,是linux系统下的
void set_sig()
{
struct sigaction act;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
act.sa_handler = sig_child_exit_handler;
sigaction(SIGCHLD, &act, NULL);
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
act.sa_handler = sig_exit_handler;
sigaction(SIGTERM, &act, NULL);
sigaction(SIGQUIT, &act, NULL);
sigaction(SIGILL, &act, NULL);
sigaction(SIGABRT, &act, NULL);
sigaction(SIGFPE, &act, NULL);
sigaction(SIGBUS, &act, NULL);
sigaction(SIGSEGV, &act, NULL);
}
其中sig_child_exit_handler和sig_exit_handler是你自定义的处理逻辑
wwwyzt
2010-09-20
打赏
举报
回复
学习了。。这个问题好!
shuangwen163
2010-09-19
打赏
举报
回复
正在学习
gu0120
2010-09-19
打赏
举报
回复
ddd
专注挖煤二十年
2010-09-19
打赏
举报
回复
学习。。。。。。。。。。
macklau
2010-09-19
打赏
举报
回复
学习了
tata050
2010-09-19
打赏
举报
回复
灌水————
加载更多回复(68)
Fastrq基于redis的队列双向队列优先队列和堆栈以及众多增强版本
Fastrq - 基于redis的队列、双向队列、优先队列和堆栈,以及众多增强版本
2020 天勤数据结构
高分
笔记 + 习题
数据结构 考研 官方用书 pdf高清版,另有习题。
2019天勤数据结构
高分
笔记
分享给时间不够又急于找资源的同学们,实在木有积分的可以私信。
天勤考研
高分
笔记 个人笔记
天勤
高分
笔记,本人考研时候做的笔记,数据结构,系统梳理每个知识点。
数据结构
高分
笔记
高分
笔记系列书籍简介
高分
笔记系列书籍包括《数据结构
高分
笔记》《组成原理
高分
笔记》《操作系统
高分
笔记》《计算机网络
高分
笔记》等,是一套针对计算机考研的辅导书。它们2010 年夏天诞生于一群考生之手,其写作风格突出表现为:以学生的视角剖析知识难点;以通俗易懂的语言取代晦涩难懂的专业术语;以成功考生的亲身经历指引复习方向;以风趣幽默的笔触缓解考研压力。相信
高分
笔记系列书籍带给考生的将是更高效、更明确、更轻松、更愉快的复习过程。 数据结构
高分
笔记简介众所周知,在计算机统考的四门专业课中,最难拿
高分
的就是数据结构。但是这门课本身的难度并不是考生最大的障碍,真正的障碍在于考生不能独自把握复习方向和考试范围。也许有学生要问,我们不是有大纲吗?照着大纲去复习不就可以了吗?表面上看是这样的,但是当你真正开始复习的时候就会发现,其实大纲只给了考生一个大致范围,有很多地方是模糊的,这些模糊的地方可能就是你纠结的地方。比如大纲里对于栈和队列的考查中有这么一条:“栈和队列的应用”。这个知识点就说得很模糊,因为只要涉及栈和队列的地方,都是其应用的范畴,这时考生该怎么办呢?于是把所有的希望寄托于参考书,希望参考书能帮助我们理解大纲的意图。参考书分为两种:一是课本,二是与课本配套的辅导书。对于课本,考生用得最多的就是严蔚敏老师编写的“严版”《数据结构》。因为这本书的内容非常丰富,如果能把这本书中考试大纲要求的章节理解透彻,参加考研就没有任何问题,但是这个过程是漫长的,除非本科阶段就学得非常好。计算机统考后,专业课四门加上公共课三门,一共是七门,绝大多数考生复习的时间一般也就六个月,而数据结构的复习需要占用多少时间,这点大家都很清楚。要在这么短的时间内掌握“严版”《数据结构》中考纲要求的知识点,基本上是不可能的,这就需要一本辅导书来依照大纲从课本中总结出考纲要求的知识点,才能使得考生在短时间内达到研究生考试的要求。市面上的参考书有两种:一种是四合一的辅导书,另一种是分册的。比如网上流行的《1800 题》及其第2 版,此书中题目极多,并且有很多老式的考研题,有些算法设计题的答案是用Pascal语言写的。这本书中的题目一般考生全做基本上是不可能的,挑着做又会把时间浪费在选题上。不可否认,这本书确实是一本非常好的题库,但是考生直接拿来用作考研辅导书却不太合适。在这种情况下,就需要有一本优质的完全针对新大纲的辅导书出现,这就是
高分
笔记产生的原因。 接下来详细介绍一下这本辅导书的写作过程,请看下图: 前 言VII图中所涉及的书都是大家很熟悉的。当年这些书编者都买了,花了很大心思才从中找出在考研战场上真正有用的东西。比如《1800 题》,里边既有好题,又有废题,相信很多人都希望有人能从中去掉重复的题目,选出大纲要求的题目,并能把解答写得更通俗易懂些,而现在编者所做的工作就是从这1800 道题中选出大纲要求的题目,并且修正部分解答,使其更容易理解。其次是“严版”《数据结构》,此书写得很严谨,语言表述非常专业,但对于基础稍差的学生来说读起来十分费力,要很长时间才能适应这本书的写作风格。如果有一本辅导书能把那些复杂程序的执行过程、拗口的专业术语、令人头大的符号翻译成容易理解的语言,就可以节省考生很多时间,因此,编者所做的事情就是根据自己复习的经验,以及对这本书的理解,把其中考试不需要的内容删掉,把需要的内容改造成一般考生容易接受的形式。对于李春葆老师的《数据结构习题与解析》,也做了类似的处理,并且在这本书中穿插讲解了一些考试大纲中没有明文规定,但是很多算法题目中大量用到的算法设计思想,来帮助大家提高解算法设计题的能力,比如搜索(打印图中两结点之间的所有路径)、分治法(二分法排序、求树的深度等)等算法思想。因此,相信本书会给读者的考研复习带来很大的帮助。 另外,本书配有微信公众号来收集读者的反馈,这也是本书不断更新完善的重要途径,即根据考生最需要的内容来作为调整讲解的依据。 本书特点: (1)精心挑选出适合考研的习题,并配上通俗易懂的答案,供读者自测和练习。 (2)总结出考研必备知识点,并且帮读者把其中过于专业、过于严谨的表述翻译成通俗易懂的语言。 (3)针对近年数据结构大题的出题风格(比如算法设计题目中的三段式题目:①表述算法思想;②写出算法描述;③计算算法的时间和空间复杂度),设计了独特的真题仿造部分,让读者在复习的过程中逐渐适应不同类型的题目。 参加本书编写的人员还有:章露捷,刘建萍,施伟,刘炳瑞,刘菁,孙琪,金苍宏,2019 版数据结构
高分
笔记VIII蔡明婉,吴雪霞,孙建兴,张继建,胡素素,邱纪虎,率方杰,李玉兰,率秀颂,刘忠艳,赵建,张兆红,张来恩,张险峰,殷凤岭,于雪友,周桂芝,张玉奎,李亚静,周莉,李娅,刘梅,殷晓红,李艳红,王中静,张洪英,王艳红
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章