首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查一条消息是否在POSIX消息队列中,是否将其从队列中删除?

问检查一条消息是否在POSIX消息队列中,是否将其从队列中删除?
EN

Stack Overflow用户
提问于 2010-06-23 04:21:41
回答 2查看 1.3K关注 0票数 0

POSIX提供了一种使用其mq_receive函数读取消息队列的方法。此函数还会将其从队列中删除。我需要找到一种方法来检查消息是否在队列中,而不删除它。

EN

回答 2

Stack Overflow用户

发布于 2010-12-02 06:09:39

参见mq_getattr(3)。其中一个属性是mq_curmsgs。除了从epoll()获得的布尔指示之外,还能实际获得队列深度是很好的。

来自Linux手册页:

代码语言:javascript
复制
       struct mq_attr {
           long mq_flags;       /* Flags: 0 or O_NONBLOCK */
           long mq_maxmsg;      /* Max. # of messages on queue */
           long mq_msgsize;     /* Max. message size (bytes) */
           long mq_curmsgs;     /* # of messages currently in queue */
       };
票数 0
EN

Stack Overflow用户

发布于 2013-06-24 22:08:17

您可能希望在打开消息队列时添加一个mq_attr数据结构,然后使用mq_getattr函数获取属性

int mq_getattr(mqd_t mqdes,struct mq_attr *attr);

最后,看看它的mq_curmsgs成员

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3096826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档