【发布时间】:2016-06-14 08:40:02
【问题描述】:
是否有一个非阻塞函数可以在 Windows 中使用 C 返回串行端口的当前 rx 队列长度?
我见过的所有示例都只是调用ReadFile,它会阻塞直到指定的超时,所以我想知道是否可以在读取之前检查缓冲区中是否有任何内容?
例如我可以简单地为每个角色执行此操作:
void ReadCharacter(char *theCharacter)
{
DWORD numBytesRead = 0;
while (numBytesRead == 0)
{
ReadFile(comPorthandle,
theCharacter,
sizeof(char),
&numBytesRead,
NULL);
}
}
但是有没有可能有类似的东西
int numBytesRx = GetNumBytesRx(&portHandle);
if (numBytesRx > 0)
Read(&portHandle, targetBuffer, numBytesRead);
【问题讨论】:
-
你可以使用timeouts
标签: c windows serial-port