5

メッセージキューにメッセージがあるかどうかを確認する方法を教えてください。メッセージ キューは、Linux ベースのオペレーティング システムでは C で実装されています。特定の時間にメッセージ キューにメッセージがあるかどうかを確認したいだけです。

4

1 に答える 1

8

メッセージの量 (存在する場合) を確認するだけで、

msgctl() 

この構造体の msg_qnum は、キュー内のメッセージの量です。例へのリンクは次のとおりです: msgctl example、それはあなたが望む以上のことをしますが、 msgctl() 呼び出しの後、私が上で述べた構造のそのフィールドをチェックする必要があります.

#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;
}

この例は、必要なことを行う必要があり、必要なことだけを行う必要があります。

于 2012-09-22T11:35:51.963 に答える