очередь сообщений ENOMEM - PullRequest
       0

очередь сообщений ENOMEM

1 голос
/ 27 января 2012

У меня проблема с mq_open в C, когда он пытается создать очередь, но я получаю следующую ошибку ENOMEM.Я чувствую, что, возможно, я пытался создать много очередей, не отключая их, и теперь я превысил количество разрешенных.Есть ли способ отображения и удаления этих очередей?По-видимому, это сохраняется даже после закрытия приложения, при этом все последующие попытки создания также завершаются неудачей.

sprintf(idTmp->name, "/%08x%d", (uint32_t) idTmp, rand());
if ((idTmp->mq = mq_open(idTmp->name, O_CREAT, 0x666, NULL)) == -1)

1 Ответ

3 голосов
/ 27 января 2012

Вы спрашиваете:

Есть ли способ отображения и удаления очередей тезисов?

Это не легко. Обычные подозреваемые (ipcs, ipcrm) предназначены для IPC System V (msgget(...)), а не POSIX IPC (mq_open(...)).

Проверьте вашу справочную страницу mq_overview(7) - ваша версия Linux может создавать очереди сообщений в виртуальной файловой системе, которую можно проверить с помощью типичных инструментов администрирования. Эта файловая система, согласно man-странице, выглядит так:

[root]# mkdir /dev/mqueue
[root]# mount -t mqueue none /dev/mqueue
... now ls and rm your way around ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...