消費したいメッセージ(整数)がキューにあり、整数を使用して消費したメッセージの数を追跡したいと思いますint consumed
。
ds.msg_qnum > 0
最初に、dsがstructmsqid_dsのオブジェクトである場合にキューにメッセージがあるかどうかを検出します。メッセージがある場合は、msgrcvを呼び出してメッセージを消費し、消費されたカウンターをインクリメントします。
だから私はこれを持っています:
msgrcv(msgqid, (void *) &message, sizeof(message), 1, 0)
printf("consumed before incr: %d\n", consumed);
consumed++;
そして、消費されると、メッセージが消費されるたびに同じランダムな整数値として表示されます。また、メッセージ構造体をint型としてメッセージデータを保持するように設定しました。それが喫煙銃かどうかはわかりません。