- •Операционные системы и их интерфейсы.
- •Графические ос
- •Речевые ос
- •Динамически подключаемые библиотеки.
- •Потоки и процессы.
- •Локальная память потока
- •Потоки в Windows.
- •Сервисы в Windows
- •7. Процессы в виндовс
- •8.Работа с сервисами виндовс
- •Синхронизация.
- •Система информационной безопасности
- •Синхронизация потоков в Windows
- •Управление безопасностью в Windows
- •3. Управляемый доступ к сети
- •13. Взаимоисключающий доступ к переменным
- •Управление пользователями
- •Управление группами
- •Структура консольного приложения
- •Работа с идентификаторами безопасности
- •19, Работа с консолью
- •20. Работа с дескрипторами безопасности
- •21. Работа с окном консоли
- •Часть III. Программирование консольных приложений
- •22. Работа со списками управления доступом на высоком уровне
- •23. Работа с буфером экрана
- •24. Работа с привилегиями
- •Ввод-вывод на консоль
- •Работа с маркерами доступа
- •Первичный маркер доступа
- •Имперсонализирующие маркер доступа
- •Передача данных
- •Работа со списками управления доступом на низком уровне
- •Работа с анонимными каналами в Windows
- •Управление безопасностью объектов на низком уровне
- •Глава 45. Управление безопасностью объектов на низком уровне 993
- •31) Работа с именованными каналами в Windows
- •32) Win32 и Win64. Программирование в среде Win64.
- •33) Работа с почтовыми ящиками в Windows
- •34) Использование файловой системы и функций символьного ввода/вывода Windows
- •35) Фреймовая обработка исключений
- •36) Усовершенствованные средства для работы с файлами и каталогами и знакомство с реестром
- •37. Финальная обработка исключений
- •38. Обработка исключений
- •39. Виртуальная память
- •40 . Управление памятью, отображение файлов и библиотеки dll
- •41. Работа с виртуальной памятью в windows
- •42.Управление процессами
- •43. Работа с кучей в Windows
- •44. Потоки и планирование выполнения
- •45. Общие концепции управления файлами
- •46. Синхронизация потоков
- •47. Работа с файлами в Windows
- •48. Влияние синхронизации на производительность и рекомендации по ее повышению
- •49) Работа с каталогами (папками) в Windows
- •50) Усовершенствованные методы синхронизации потоков
- •51) Асинхронный вызов процедур
- •52) Взаимодействие между процессами
- •53) Асинхронный доступ к данным.
- •54) Сетевое программирование с помощью сокетов Windows
- •55)Порты завершения
- •57)Работа с ожидающим таймером
- •58)Асинхронный ввод/вывод и порты завершения
- •Порты завершения ввода-вывода
- •59)Отображение файлов в память.
- •Достоинства метода. Альтернативой отображению может служить прямое чтение файла или запись в файл. Такой способ работы менее удобен по следующим причинам:
- •60)Безопасность объектов Windows
- •Операционные системы и их интерфейсы.
35) Фреймовая обработка исключений
Исключением называется событие, которое произошло во время выполнения
программы, в результате совершения которого дальнейшее нормальное
выполнение программы становится невозможным. Как правило, такие события
являются ошибками в программе. Поэтому для дальнейшей работы
приложения требуется или восстановление программы в рабочее состояние, или
ее аварийное завершение с освобождением всех захваченных программой
ресурсов.
фрагмент программы, который использует механизм структурной
обработки исключений, выглядит следующим образом:
_try
{
// охраняемый код
}
except (выражение-филь тр)
{
// код обработки исключения
}
Сделаем два важных замечания относительно механизма структурной
обработки исключений. Во-первых, не допускается использование оператора
goto для передачи управления внутрь фрейма или обработчика исключения.
Во-вторых, в выражении фильтра допускается использование функций
GetExceptionCode И GetExceptionlnformation,которые предоставляют
информацию о происшедшем исключении.
36) Усовершенствованные средства для работы с файлами и каталогами и знакомство с реестром
В Windows аналогично тому, как это предусмотрено в UNIX, библиотеке С и почти любой другой ОС, для каждого дескриптора открытого файла поддерживается указатель файла (file pointer), отмечающий позицию текущего байта в данном файле. Именно эта позиция служит отправной точкой для последующей передачи данных при выполнении очередной операции WriteFile или ReadFile, что сопровождается увеличением значения указателя файла на соответствующее количество переданных байт. При открытии файла путем вызова функции CreateFile указатель файла принимает нулевое значение, отмечающее начало файла, которое изменяется по мере чтения или записи каждого очередного байта. Ключевую роль в обеспечении возможности прямого доступа к данным, хранящимся в файле, играет функция SetFilePointer, позволяющая устанавливать значения указателя файла.
Определение размера файла. Размер файла можно получить, используя значение указателя файла, возвращаемое функцией SetFilePointer, если при вызове этой функции задать количество байтов, на которое должен быть перемещен указатель файла, равным 0. Для этой же цели можно воспользоваться также функцией GetFileSize.
Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла.
Существует возможность просмотра указанного каталога с целью поиска файлов и других каталогов, имена которых соответствуют заданному шаблону, одновременно с получением атрибутов файлов. Для выполнения поиска требуется дескриптор поиска (search handle), получаемый с помощью функции FindFirstFile. Для нахождения файлов, имена которых удовлетворяют заданным условиям, используется функция FindNextFile, а для прекращения поиска — функция FindClose.
Рассмотрим еще некоторые функции для работы с файлами и каталогами:
• Функция FileTimeToSystemTime (здесь не описывается; см. справочную систему Windows и программу 3.2) разбивает метки времени файла на отдельные блоки, соответствующие естественным единицам измерения, от годов до секунд и миллисекунд. Эти блоки удобно, например, использовать при выводе временных атрибутов файлов на экран или принтер.
• Функция SystemTimeToFileTime обращает этот процесс, преобразуя время, выраженное в естественных единицах, в метки времени файла.
• Функция CompareFileTime сравнивает метки времени двух файлов и в случае успешного завершения возвращает значение, зависящее от того, меньше (-1), равно (0) или больше (+1) значение метки времени первого файла по сравнению со значением метки времени второго файла.
• Для изменения меток времени служит функция SetFileTime; метки времени, не подлежащие изменению, при вызове функции указываются равными 0. NTFS поддерживает все три типа меток времени файлов, но FAT дает точные результаты только для меток времени последнего обращения.
• Функции FileTimeToLocalFileTime и LocalFileTimeToFileTime преобразуют значения меток времени, соответственно, от всеобщего скоординированного времени UTC к местному времени и наоборот.
