Операционные системы. Учебное пособие. Марапулец Ю.В. - 132 стр.

UptoLike

Составители: 

FILE_FLAG_RANDOM_ACCESS Оповещает систему о том, что доступ к файлу
осуществляется случайным образом. Система
может использовать это обстоятельство для
оптимизации кэширования файла.
FILE_FLAG_SEQUENTIAL_SCAN Оповещает систему о том, что доступ к файлу
осуществляется последовательно от начала к
концу файла. Система может использовать это
обстоятельство для оптимизации кэширова-
ния файла.
FILE_FLAG_OVERLAPPED Приказывает системе инициализировать объ-
ект для перекрывающегося ввода/вывода.
FILE_FLAG_DELETE_ON_CLOSE Приказывает системе уничтожить файл сразу
же после того, как все его дескрипторы будут
закрыты.
FILE_FLAG_BACKUP_SEMANTICS Указывает на то, что файл предназначен для
операций резервного копирования или вос-
становления из резервной копии. Операцион-
ная система разрешает вызывающему процес-
су любой доступ к файлу при условии, что
вызывающий процесс обладает привилегиями
SE_BACKUP_NAME и SE_RESTORE_NAME.
FILE_FLAG_POSIX_SEMANTICS Доступ к файлу осуществляется в соответст-
вии с правилами POSIX. При этом разрешает-
ся использовать несколько различных файлов,
имена которых отличаются только регистром
букв. Такие файлы разрешается создавать
только в системах, поддерживающих подоб-
ную схему именования файлов.
FILE_FLAG_OPEN_REPARSE_POINT Подавляет поведение, свойственное для точек
грамматического разбора (reparse points) фай-
ловой системы NTFS. Когда файл открывает-
ся, вызывающему процессу возвращается его
дескриптор вне зависимости от того, работо-
способен ли фильтр, контролирующий точку
грамматического разбора, или нет. Этот флаг
не может использоваться совместно с флагом
CREATE_ALWAYS.
FILE_FLAG_OPEN_NO_RECALL Информирует систему о том, что вызывающее
приложение запрашивает данные, хранящиеся
в файле, однако файл может продолжать оста-
ваться на удаленном носителе данных. Этот
флаг используется удаленными системами
хранения данных или совместно с системой
Hierarchical Storage Management.
Еще одной особенностью функции CreateFile() является обслуживание сменных
носителей информации. Если носитель данных в данный момент недоступен (гибкий
диск вытащили из дисковода), операционная система выведет на экран диалоговое окно
с сообщением об ошибке. Если вы хотите избежать этого (обычно, убедившись в отсут-
ствии гибкого диска, приложение принимает меры самостоятельно), необходимо обра-
титься к функции SetErrorMode() и передать ей в качестве параметра флаг
134
FILE_FLAG_RANDOM_ACCESS              Оповещает систему о том, что доступ к файлу
                                     осуществляется случайным образом. Система
                                     может использовать это обстоятельство для
                                     оптимизации кэширования файла.
FILE_FLAG_SEQUENTIAL_SCAN            Оповещает систему о том, что доступ к файлу
                                     осуществляется последовательно от начала к
                                     концу файла. Система может использовать это
                                     обстоятельство для оптимизации кэширова-
                                     ния файла.
FILE_FLAG_OVERLAPPED                 Приказывает системе инициализировать объ-
                                     ект для перекрывающегося ввода/вывода.
FILE_FLAG_DELETE_ON_CLOSE            Приказывает системе уничтожить файл сразу
                                     же после того, как все его дескрипторы будут
                                     закрыты.
FILE_FLAG_BACKUP_SEMANTICS           Указывает на то, что файл предназначен для
                                     операций резервного копирования или вос-
                                     становления из резервной копии. Операцион-
                                     ная система разрешает вызывающему процес-
                                     су любой доступ к файлу при условии, что
                                     вызывающий процесс обладает привилегиями
                                     SE_BACKUP_NAME и SE_RESTORE_NAME.
FILE_FLAG_POSIX_SEMANTICS            Доступ к файлу осуществляется в соответст-
                                     вии с правилами POSIX. При этом разрешает-
                                     ся использовать несколько различных файлов,
                                     имена которых отличаются только регистром
                                     букв. Такие файлы разрешается создавать
                                     только в системах, поддерживающих подоб-
                                     ную схему именования файлов.
FILE_FLAG_OPEN_REPARSE_POINT         Подавляет поведение, свойственное для точек
                                     грамматического разбора (reparse points) фай-
                                     ловой системы NTFS. Когда файл открывает-
                                     ся, вызывающему процессу возвращается его
                                     дескриптор вне зависимости от того, работо-
                                     способен ли фильтр, контролирующий точку
                                     грамматического разбора, или нет. Этот флаг
                                     не может использоваться совместно с флагом
                                     CREATE_ALWAYS.
FILE_FLAG_OPEN_NO_RECALL             Информирует систему о том, что вызывающее
                                     приложение запрашивает данные, хранящиеся
                                     в файле, однако файл может продолжать оста-
                                     ваться на удаленном носителе данных. Этот
                                     флаг используется удаленными системами
                                     хранения данных или совместно с системой
                                     Hierarchical Storage Management.
       Еще одной особенностью функции CreateFile() является обслуживание сменных
носителей информации. Если носитель данных в данный момент недоступен (гибкий
диск вытащили из дисковода), операционная система выведет на экран диалоговое окно
с сообщением об ошибке. Если вы хотите избежать этого (обычно, убедившись в отсут-
ствии гибкого диска, приложение принимает меры самостоятельно), необходимо обра-
титься к функции SetErrorMode() и передать ей в качестве параметра флаг


                                       134