我有在C mq_open一個問題,它試圖創建一個隊列,但我發現下面的錯誤ENOMEM。我覺得我可能試圖創造許多隊列而不解開它們,現在我超過了允許的數量。有沒有辦法顯示和刪除這些隊列?即使在應用程序關閉之後,這似乎仍然存在,所有後續的創建嘗試也失敗。消息隊列ENOMEM
sprintf(idTmp->name, "/%08x%d", (uint32_t) idTmp, rand());
if ((idTmp->mq = mq_open(idTmp->name, O_CREAT, 0x666, NULL)) == -1)
你有*任何*調用'mq_close'嗎? – spraff 2012-01-27 15:24:49
我這樣做,但代碼在被擊中之前失敗。 – JohnB 2012-01-27 15:30:08
如果您嘗試在我的答案中加載'/ dev/mqueue',您會看到什麼? – pilcrow 2012-01-27 15:46:35