Книга: Системное программирование в среде Windows
Следствия применения перекрывающегося ввода/вывода
Следствия применения перекрывающегося ввода/вывода
Перекрывающийся ввод/вывод выполняется в асинхронном режиме. Это имеет несколько следствий.
• Операции перекрывающегося ввода/вывода не блокируются. Функции ReadFile, WriteFile, TransactNamedPipe и ConnectNamedPipe осуществляют возврат, не дожидаясь завершения операции ввода/вывода.
• Возвращаемое функцией значение не может быть использовано в качестве критерия успешности или неудачи ее выполнения, поскольку операция ввода/вывода к этому моменту еще не успевает завершиться. Для индикации состояния выполнения ввода/вывода требуется привлечение другого механизма.
• Возвращенное значение количества переданных байтов также приносит мало пользы, поскольку передача данных могла не завершиться до конца. Для получения такого рода информации Windows должна предоставить другой механизм.
• Программа может многократно предпринимать попытки чтения или записи с использованием одного и того же перекрывающегося дескриптора файла. Поэтому незначащим оказывается и указатель файла, соответствующий такому дескриптору. Следовательно, должен быть предусмотрен дополнительный метод, обеспечивающий указание позиции в файле для каждой операции чтения или записи. В случае именованных каналов, в силу присущего им последовательного характера обработки данных, это не является проблемой.
• Для программы должна быть обеспечена возможность ожидания (синхронизации) завершения ввода/вывода. При наличии нескольких незавершенных операций ввода/вывода, связанных с одним и тем же дескриптором, программа должна быть в состоянии определить, какие из операций уже завершились. Операции ввода/вывода вовсе не обязательно завершаются в том же порядке, в каком они начинали выполняться.
Для преодоления двух последних из перечисленных выше трудностей используются структуры OVERLAPPED.
- Следствия применения перекрывающегося ввода
- Состояния перекрывающегося ввода
- Пример применения метода «пять почему»
- 1.6 Драйверы и буферы ввода-вывода
- 4.1 Сферы применения технологии Fibre Channel
- Глава 6 BIOS – базовая система ввода-вывода
- 5.2.2.2. Устройства ввода информации в персональный компьютер
- Можно ли входить в систему без ввода имени и пароля?
- Изменение ассоциаций: принципы применения
- Изменение чувств: принципы применения
- Правила ввода формул
- 6.2. Модели ввода-вывода