Jac*_*cob 14 c linux message-queue
我需要查看消息队列而不删除它们.只有符合某些条件,我才会继续删除消息队列项.这该怎么做?以下是我所知道的API - 但似乎没有人支持偷看.
mq_close() - 关闭消息队列
mq_getattr() - 获取消息队列的当前属性
mq_notify() - 当队列变为非空时通知调用进程
mq_open() - 打开或创建消息队列
mq_receive() - 从队列接收消息
mq_send() - 将消息放入消息队列中
mq_setattr() - 设置消息队列的标志
mq_unlink() - 取消链接(即删除)消息队列
有没有办法在不删除邮件的情况下查看邮件?
偷看对于消息队列来说可能是一个坏主意,因为像所指出的那样,竞争条件的危险性.假设你偷看了一条消息; 由于您无法锁定队列,因此您将无法可靠地检索您偷看的相同消息.如果您有两个进程从同一队列接收互斥消息,您应该考虑将这些消息分成两个队列,以便设计清晰和竞争条件稳定.
答案很简短:偷看是不太可能的,因为它需要显式的锁定语义来稳定地执行它.
| 归档时间: |
|
| 查看次数: |
3168 次 |
| 最近记录: |