![](/img/trans.png)
[英]Why fopen_s returns EEXIST (errno 17) when opening file for reading
[英]mq_unlink setting errno to EEXIST
我正在使用消息队列进行服务器中的线程间通信。 该服务器在星期四晚上运行正常。 当我星期一选择备份项目时,它无法创建正在使用的六个队列中的两个,理由是它们已经打开(已设置O _
EXCL)。 事实并非如此,但尽管如此,我还是添加了一个带有错误检查的mq _
取消链接调用,并从mq _
open中删除了O _
EXCL标志。
当我编译并运行时,通过mq _
unlink和mq _
open都将errno设置为EEXIST。 这应该是不可能发生的:在任何情况下,mq _
unlink都不能将errno设置为EEXIST,并且只有在设置O _
EXCL标志时,mq _
open才能设置EEXIST。
任何想法为什么会这样?
我相信这是一个Solaris错误。 检查锁定文件(通常为/var/tmp/.MQL/
...),如果知道未使用消息队列,则将其删除。 那应该允许unlink
成功。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.