我想要消耗的隊列上有多條消息(它們是整數),我想跟蹤我使用整數int consumed
來消費多少消息。msgrcv後的整數被設置爲隨機值
我首先檢測隊列是否有消息使用ds.msg_qnum > 0
其中ds是struct msqid_ds的對象。如果有消息,則我調用msgrcv來消費該消息並增加消耗的計數器。
所以我有這樣的:
msgrcv(msgqid, (void *) &message, sizeof(message), 1, 0)
printf("consumed before incr: %d\n", consumed);
consumed++;
和消費表現爲每條消息後食用相同的隨機整數值。此外,我設置我的消息結構來保存消息數據類型爲int;我不確定那是否是吸菸槍。
如何'message'聲明和初始化? – Mat
聲明:'typedef struct msgbuf {long mtype; int mdata; } message_buf;' 初始化:'message_buf message;' – rcell