Check Unix Message Queue if empty or not Check Unix Message Queue if empty or not unix unix

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.