0
我正在使用消息隊列進行服務器內的線程間通信。服務器在週四晚上按預期運行。當我週一選擇了該項目時,它無法創建六個正在使用的隊列中的兩個,並指出它們已經打開(已設置O _
EXCL)。這不應該是這種情況,但是我添加了一個mq _
取消鏈接調用並進行錯誤檢查,並從mq _
打開刪除了O _
EXCL標誌。mq_unlink設置errno到EEXIST
當我編譯並運行時,errno被mq _
unlink和mq _
打開設置爲EEXIST。這應該是一個不可能發生的事情:mq _
在任何情況下,取消鏈接都不能將errno設置爲EEXIST,而當設置了O _
EXCL標誌時,打開的mq _
只能設置EEXIST。
任何想法爲什麼會發生這種情況?
愚蠢的問題,但電話實際上失敗?如果呼叫沒有失敗,你永遠不能依靠errno的價值。 – nos 2009-07-07 18:51:26
是的,他們確實失敗了。 – Sean 2009-07-07 19:11:30