【发布时间】:2011-02-24 23:11:54
【问题描述】:
使用标准的 Win32 文件 I/O API (CreateFile/ReadFile/etc),我试图等待文件变得可读,或者文件发生异常。如果 Windows 有任何体面的 POSIX 支持,我可以这样做:
select(file_count, files_waiting_for_read, NULL, files_waiting_for_excpt, NULL, NULL);
当某些文件有任何有趣的内容时,select 将返回。 Windows 不支持选择或轮询。美好的。我想我可以拿文件做类似的事情:
while(eof(file_descriptor))
{
Sleep(100);
}
当有更多数据可供读取时,上述循环将退出。但是不,Windows 也没有等效的 eof() !我可能会在文件上调用 ReadFile() ,并确定它是否处于这种状态。但是,然后我必须在那个时间点处理读取 - 我希望能够简单地找出文件是可读的,而无需实际读取它。
我有什么选择?
【问题讨论】:
标签: c++ visual-studio winapi mfc