Используя стандартный интерфейс ввода-вывода Win32 API (CreateFile / ReadFile / и т. Д.), Я пытаюсь дождаться, пока файл станет читаемым, или возникнет исключение в файле. Если бы у 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 () для файла и определить, находится ли он в eof таким образом. Но тогда я должен был бы обработать чтение в тот момент времени - я надеюсь, что смогу просто выяснить, что файл является читаемым, фактически не читая его.
Какие у меня варианты?