我要使用的队列中有许多消息(整数),我想使用整数跟踪我使用的消息数int consumed
。
ds.msg_qnum > 0
我首先使用where ds 是 struct msqid_ds 的对象来检测队列是否有消息。如果有消息,那么我调用 msgrcv 来使用消息并增加使用的计数器。
所以我有这个:
msgrcv(msgqid, (void *) &message, sizeof(message), 1, 0)
printf("consumed before incr: %d\n", consumed);
consumed++;
每次消息消费后,消费显示为相同的随机整数值。另外,我将消息结构设置为将消息数据保存为 int 类型;我不确定这是否是确凿的证据。