0

我想知道,有没有什么方法可以刷新所有在 1 msgQId 上流水线的消息??????

4

1 回答 1

3

没有内置 API 可以刷新消息队列中的所有消息。
如果您只想丢弃队列中的所有消息,这里有一个快速的方法:

void discardQMessages(MSG_Q_ID id) {
  while(
        msgQReceive(id, NULL, 0, NO_WAIT) != ERROR
       )    ;

  if {errno != S_objLib_OBJ_UNAVAILABLE)
     /* Uh oh... got some problem */
}

当您从任何 OS API 调用中收到错误时,您应该始终检查 errno。

于 2012-07-27T13:49:33.070 回答