当你调用WaitForSingleObject()
你用CreateFile()
or创建的句柄时会发生什么_get_osfhandle()
?
由于不值得解释的原因,我想WaitForSingleObject()
用来等待我创建的 HANDLE _get_osfhandle(fd)
,其中fd
来自定期调用_open()
. 这可能吗?
我已经在实践中尝试过,并且在某些机器上它按预期工作(句柄始终处于信号状态,因为您可以从中读取更多数据),并且在某些机器上WaitForSingleObject()
如果您允许它会无限期阻塞。
MSDN 页面WaitForSingleObject()
说,它处理的唯一受支持的事情是“更改通知、控制台输入、事件、内存资源通知、互斥体、进程、信号量、线程和可等待计时器”。
此外,如果我使用CreateFile()
而不是_get_osfhandle()
CRT 文件描述符会有所不同吗?