Обнаружить пустой буфер в дескрипторе Windows без использования readfile()
Вопрос
Мне было интересно, есть ли какая-либо функция, подобная IsBufferEmpty(), которую можно использовать для синхронного дескриптора, а не использовать ReadFile() и ждать, пока она вернет false.Мне нужно что-то, чтобы устранить задержку, которую ReadFile() требует, чтобы попытаться прочитать данные.
Решение
Это для связи через последовательный порт?
Если да, то вы можете использовать ClearCommError()
функция:
DWORD com_errors = 0;
COMSTAT com_stat;
ClearCommError(serial_port_handle, &com_errors, &com_stat);
/* com_stat.cbInQue now holds the number of characters in the receive buffer */
Не связан с StackOverflow