如何在不删除项目的情况下查看Linux(POSIX)消息队列?

我需要查看一个消息队列而不删除它们。 只要符合某些标准,我将继续并删除消息队列项目。 这个怎么做? 以下是我所知道的API – 但似乎没有支持窥视。

有没有办法在不删除邮件的情况下偷看邮件?

偷看对于消息队列来说可能是一个坏主意,因为像sehe指出的那样,竞争条件的危险。 假设你曾经偷看过一条消息; 由于您无法锁定队列,因此您将无法可靠地检索到相同的邮件。 如果有两个进程从同一个队列接收相互排斥的消息,则应该考虑将这些消息分成两个队列,以便设计和竞争条件稳定。

做出的答案很简短:偷看是不太可能的,因为它需要明确的锁定语义来稳定地执行它。