Я хотел бы знать, есть ли способ сбросить все сообщения, которые передаются по конвейеру на 1 msgQId?????
Как очистить/сбросить буфер очереди сообщений в VxWorks?
Ответы (1)
Не существует встроенного 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 */
}
Вы должны всегда проверять errno, когда получаете сообщение об ошибке при любом вызове OS API.
person
Benoit
schedule
27.07.2012
Спасибо за вашу информацию. я тоже думал только в этом ключе.
- person Pratik; 30.07.2012