【问题标题】:Is it possible to determine how many messages are in a POSIX message queue?是否可以确定 POSIX 消息队列中有多少条消息?
【发布时间】:2021-12-23 12:28:43
【问题描述】:

我正在使用在 RHEL 机器上运行的 POSIX。有没有办法检查消息队列中剩余的消息数量(最好是 System V)?

这样做的目的只是想知道在给定时间哪些队列拥有最多的消息,以便我可以让“管理”线程以最长队列优先的方式接收消息。

我在手册页中没有看到任何关于此的内容(这些是特定于 C/C++ 且与 IPC 无关的)。

有人知道怎么做吗?

【问题讨论】:

  • 你是如何开始创建消息队列的?
  • msgget(KEY, 0666 | IPC_CREAT) 是我目前正在使用的。
  • 如果您使用msgget,那么您使用的不是 POSIX 消息队列,而是 System V 消息队列。请澄清。

标签: c++ queue posix message-queue rhel


【解决方案1】:

您在 cmets 中说您正在使用 msgget() 创建消息队列。在这种情况下,您可以使用msgctl() 通过返回的msqid_ds::msg_qnum struct 字段来获取队列中的消息数。

【讨论】:

  • 这正是我所需要的,谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 2020-11-27
  • 2019-03-17
  • 2016-08-21
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多