我正在使用消息队列在服务器中进行线程间通信。服务器在星期四晚上按预期运行。当我在周一恢复项目时,它无法创建六个正在使用的队列中的两个,理由是它们已经打开(O _
EXCL 已设置)。这不应该是这种情况,但是我添加了一个_
带有错误检查的 mq unlink 调用,并从 mq open 中删除了 O _
EXCL 标志。_
_
当我编译并运行时,mq unlink 和 mq _
open都将 errno 设置为 EEXIST 。这应该是不可能发生的:mq _
unlink 在任何情况下都无法将 errno 设置为 EEXIST,而 mq _
open 只能在设置 O _
EXCL 标志时设置 EEXIST。
任何想法为什么会发生这种情况?