Нет, вы этого не делаете.
Очереди сообщений SYSV не выделяют определенные ресурсы (кроме самой очереди и сообщений, размещенных там) для клиентов, которые должны быть освобождены.Эти ресурсы являются «глобальными» для системы, а не для каждого процесса.msgget
просто возвращает ключ как системный глобальный дескриптор.
Однако уничтожение самой очереди сообщений следует выполнять, когда она больше не нужна, поскольку она занимает системные ресурсы.Однако, как вы говорите, это обрабатывается «другим процессом».
Обратите внимание, что очереди сообщений POSIX (mq_open, mq_close
) ведут себя по-разному.