サーバー内のスレッド間通信にメッセージ キューを使用しています。木曜日の夜、サーバーは期待どおりに機能していました。月曜日にプロジェクトを再開したところ、使用中の 6 つのキューのうち 2 つを作成できませんでした。これは、それらが既に開いているためです (O _
EXCL が設定されています)。これはあってはならないことですが、それでも、エラー チェックを伴う mq unlink 呼び出しを追加し、 mq openから_
O _
EXCL フラグを削除しました。_
_
コンパイルして実行すると、mq unlink と mq openの両方で errno が EEXIST に設定されました_
。mq _
unlink はどのような状況でも errno を EEXIST に設定できず、mq _
open は O _
EXCL フラグが設定されている場合にのみ EEXIST を設定できます。
なぜこれが起こっているのですか?