知りたいのですが、1 つの msgQId でパイプライン化されたすべてのメッセージをフラッシュする方法はありますか?????
質問する
1480 次
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 に答える