【发布时间】:2014-11-18 16:16:52
【问题描述】:
我希望ReadFile() 与串行通信设备在收到至少一个字节或超时时返回。
正如我一直在寻找关于 ReadFile() 的超时。
大多数人提到SetCommTimeouts()和overlapped I/O
但是SetCommTimeouts() 没有返回,但接收到一个字节,直到超时。
而overlapped I/O(GetOverlappedResult) 也不能满足我的要求。对吧?
但是我知道GetOverlappedResultEx() 似乎支持这一点,使用DWORD dwMilliseconds 参数,我不想使用EX 系列函数。
有什么办法吗?
【问题讨论】:
-
“我不想使用 EX 系列功能。”:为什么?许多核心 Win32 API 以
Ex结尾。 -
你可以使用'select'函数,有一个超时,然后当字符可用或超时时返回。它返回一个值,指示发生了什么。
-
但正如它在 Windows 中所知,select 仅适用于套接字。没有?
标签: c++ c windows serial-port