_Write в io.h a блокирует вызов?
Я унаследовал некоторый код, который для инициализации некоторого оборудования записывает несколько байтов, а затем ожидает возврата. Для этого он вызывает _write
функция от io.h
, Судя по моему тестированию, похоже, что в этот момент он блокируется. Итак, мои вопросы таковы:
- Эта функция является функцией блокировки?
- Есть ли способ установить время ожидания?
- Есть ли альтернативная неблокирующая функция, которую я мог бы использовать вместо этого?
1 ответ
Решение
Если вы хотите выполнить асинхронный ввод-вывод в Windows, то либо используйте API-интерфейсы Win32 напрямую (посмотрите документы для WriteFileEx/ReadFileEx, которые содержат указатели на общий фон для асинхронного ввода-вывода против синхронизации), либо рассмотрите boost::asio.