Check Unix Message Queue if empty or not
Just checking the amount (if any) of messages is done using the
msgctl()
function, and examining the msqid_ds structure on return, the msg_qnum in this structure is the amount of messages in the queue. Here is a link with an example: msgctl example, it does more then you want, but after the msgctl() call you just have to check that field in the structure I mentioned above.
#include <sys/msg.h>main() { int msqid = 2; int rc; struct msqid_ds buf; int num_messages; rc = msgctl(msqid, IPC_STAT, &buf); num_messages = buf.msg_qnum;}
This example should do what you want, and only do what you want.