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 に答える