См. mq_getattr(3)
. Одним из атрибутов является mq_curmsgs
. Приятно получить глубину очереди, в дополнение к логическому указанию, которое вы получите от epoll()
.
Из справочной страницы Linux:
struct mq_attr {
long mq_flags; /* Flags: 0 or O_NONBLOCK */
long mq_maxmsg; /* Max. # of messages on queue */
long mq_msgsize; /* Max. message size (bytes) */
long mq_curmsgs; /* # of messages currently in queue */
};