Составители:
Рубрика:
зателей (табл. 3.2). Каждая функция из этого набора получает виртуальный ад-
рес и возвращает значение TRUE,
если процесс не имеет определенных приви-
легий доступа.
Таблица 3.2.
Функция Аргумент Вид проверки
IsBadCodePtr() Указатель функции
Проверяет возможность чтения начала
функции
IsBadReadPtr()
Указатель блока
памяти
Проверяет возможность чтения заданного
диапазона адресов
IsBadStringPtr() Указатель строки
Проверяет возможность чтения всех байтов до
конца заданной строки
IsBadWritePtr()
Указатель блока
памяти
Проверяет возможность записи заданного
диапазона адресов
Глава 4. ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА В ОС WINDOWS
4.1. Асинхронный ввод/вывод
Наиболее простым способом работы с файлами является использование
стандартных операций компиляторов языков – использование функции fopen()
для С/С++, потоковых классов ввода-вывода, класса CFile для программирова-
ния с использованием MFC и т. п. Однако в ОС Windows заложен гораздо бо-
лее мощный механизм работы с файлами, который не используется стандарт-
ными компиляторами – асинхронный ввод/вывод [4].
Асинхронный ввод/вывод – это механизм, позволяющий программе осуще-
ствлять обмен данными с каким-либо устройством ввода/вывода и одновре-
менно с этим выполнять какую-либо другую полезную работу. Например, про-
грамма отдает команду на чтение данных из файла, а затем, не ожидая
завершения чтения данных, приступает к выполнению математических вычис-
лений. Когда данные из файла перемещаются в оперативную память, програм-
ма завершает вычисления и приступает к обработке прочитанных данных,
причем это лишь один из множества возможных сценариев использования
асинхронного ввода/ вывода.
Если вы разрабатываете программу, принимающую данные из нескольких
разных источников, вам также может потребоваться асинхронный ввод/вывод.
Предположим, что вы разрабатываете терминальную программу, которая чи-
тает данные как с клавиатуры, так и из последовательного порта. По мере по-
ступления данных программа должна немедленно осуществлять их обработку.
57
зателей (табл. 3.2). Каждая функция из этого набора получает виртуальный ад-
рес и возвращает значение TRUE, если процесс не имеет определенных приви-
легий доступа.
Таблица 3.2.
Функция Аргумент Вид проверки
Проверяет возможность чтения начала
IsBadCodePtr() Указатель функции
функции
Указатель блока Проверяет возможность чтения заданного
IsBadReadPtr()
памяти диапазона адресов
Проверяет возможность чтения всех байтов до
IsBadStringPtr() Указатель строки
конца заданной строки
Указатель блока Проверяет возможность записи заданного
IsBadWritePtr()
памяти диапазона адресов
Глава 4. ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА В ОС WINDOWS
4.1. Асинхронный ввод/вывод
Наиболее простым способом работы с файлами является использование
стандартных операций компиляторов языков – использование функции fopen()
для С/С++, потоковых классов ввода-вывода, класса CFile для программирова-
ния с использованием MFC и т. п. Однако в ОС Windows заложен гораздо бо-
лее мощный механизм работы с файлами, который не используется стандарт-
ными компиляторами – асинхронный ввод/вывод [4].
Асинхронный ввод/вывод – это механизм, позволяющий программе осуще-
ствлять обмен данными с каким-либо устройством ввода/вывода и одновре-
менно с этим выполнять какую-либо другую полезную работу. Например, про-
грамма отдает команду на чтение данных из файла, а затем, не ожидая
завершения чтения данных, приступает к выполнению математических вычис-
лений. Когда данные из файла перемещаются в оперативную память, програм-
ма завершает вычисления и приступает к обработке прочитанных данных,
причем это лишь один из множества возможных сценариев использования
асинхронного ввода/ вывода.
Если вы разрабатываете программу, принимающую данные из нескольких
разных источников, вам также может потребоваться асинхронный ввод/вывод.
Предположим, что вы разрабатываете терминальную программу, которая чи-
тает данные как с клавиатуры, так и из последовательного порта. По мере по-
ступления данных программа должна немедленно осуществлять их обработку.
57
Страницы
- « первая
- ‹ предыдущая
- …
- 55
- 56
- 57
- 58
- 59
- …
- следующая ›
- последняя »
