免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4880 | 回复: 9
打印 上一主题 下一主题

[C] 消息队列编程问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-02 15:24 |只看该作者 |倒序浏览
基于消息队列的进程间通信,A进程向消息队列中发送消息,B进程读取,现在查看消息队列中的消息有64条。。。。

怎样用函数实现删除消息队列中的消息,而不删除消息队列????


msgctl函数 获取和设置消息队列的属性  IPC_PMID是从内核中删除这个消息队列

论坛徽章:
0
2 [报告]
发表于 2009-04-02 16:35 |只看该作者
怎么没有人回复呢

大家帮忙指导一下哈~~~~~~~~

先谢谢啦。。。

论坛徽章:
0
3 [报告]
发表于 2009-04-02 16:51 |只看该作者
假接收

论坛徽章:
0
4 [报告]
发表于 2009-04-02 17:45 |只看该作者
以前写过,因为没研究过消息队列的源码,所以想了个苯办法,发送消息队列前,把消息队列的ID,发送时间等都记录到文件中,有个进程专门来处理这些文件,超过多少时间消息队列中没取走的把,就把这条记录取走

论坛徽章:
0
5 [报告]
发表于 2009-04-02 17:49 |只看该作者
我也想听听大牛对这个问题的解决方法

论坛徽章:
0
6 [报告]
发表于 2009-04-02 19:20 |只看该作者

回复 #3 JohnBull 的帖子

3楼大哥   假接收是什么意思啊?

我查了查 没有这方面的资料  

论坛徽章:
0
7 [报告]
发表于 2009-04-02 19:23 |只看该作者

回复 #4 jinmiaobis 的帖子

听起来好像跟难哦~~~

论坛徽章:
0
8 [报告]
发表于 2009-04-03 11:40 |只看该作者
消息队列中一直都是64条消息  
这是为什么啊?
添加一条也是这样。。。
读取一条还是这样。。。。

论坛徽章:
0
9 [报告]
发表于 2009-04-04 13:21 |只看该作者
刚才程序中加了一个错误处理,出现了
  “msgsnd error
   : Resource temporarily unavailable” 的错误提示

我用 msgctl(msgid,IPC_RMID,NULL)  删除后重新运行程序还是出现这样的结果。

用ipcs查看消息队列  一直显示是64条

大家帮忙指导一下啊。。。现在程序卡在这弄不过去了,我是刚学Linux编程不久,应该是哪一方面的知识欠缺。。。望高手指导一下  谢谢啦。。。。

论坛徽章:
0
10 [报告]
发表于 2009-04-04 16:35 |只看该作者


没人回复。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP