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

UptoLike

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

Таблица 5.4
Аргумент Описание
lpFileName Указатель на имя файла или устройства
DesiredAccess Устанавливает вид доступа к объекту. Используются флаги GE-
NERIC_READ (чтение), GENERIC_WRITE (запись) или оба при
помощи оператора логического сложения. Значение 0 указывает
на необходимость проверки возможности доступа.
dwShareMode Набор битовых флагов, указывающий на режим совместного
доступа к объекту. Если значение dwShareMode равно 0, совме-
стный доступ к объекту запрещен. Флаги FILE_SHARE_DELETE
(совместное удаление), FILE_SHARE_READ (совместное чте-
ние) и FILE_SHARE_WRITE (совместная запись).
lpSecurityAttributes Указатель на структуру SECURITY_ATTRIBUTES, которая оп-
ределяет, будет ли создаваемый дескриптор наследоваться до-
черними процессами. Если аргумент lpSecurityAttributes имеет
значение NULL, дескриптор не будет наследоваться.
dwCreationDisposi-
tion
Указывает, каким образом следует создать (или открыть) файл.
Допускается использовать следующие значения: CREATE_NEW
(создать новый файл; если файл существует, функция не сраба-
тывает), CREATE_ALWAYS (создать новый файл; если файл
существует, он перезаписывается), OPEN_EXISTING (открыть
файл; если файл не существует, функция не срабатывает),
OPEN_ALWAYS (открыть файл; если файл не существует, он
создается) или TRUNCATE_EXISTING (открыть файл и сделать
его равным нулю; если файл не существует- не срабатывает).
dwFlagsAndAttributes Набор атрибутов и флагов, которыми должен обладать файл.
Например, если требуется, чтобы новый файл был скрытым, ис-
пользуйте значение FILE_ATTRIBUTE_HIDDEN. Другие воз-
можные значения флагов перечислены в табл. 5.5.
hTemplateFile Содержит дескриптор с доступом GENERIC_READ. Это деск-
риптор шаблонного файла, атрибуты которого (включая расши-
ренные) будут присвоены создаваемому файлу.
Наиболее интересным аргументом функции CreateFile() является предпоследний,
шестой аргумент, который является набором флагов доступа к файлу и атрибутов фай-
ловой системы. Используя различные комбинации флагов (табл. 5.5), можно настроить
доступ к файлу самым причудливым образом. Например, можно приказать системе уда-
лить файл сразу же после того, как он будет закрыт, или объявить, что файл будет ис-
пользоваться для перекрывающегося (overlapped) доступа (перекрывающийся доступ -
базовый метод осуществления асинхронного ввода/вывода). Помимо прочего флаги по-
зволяют управлять механизмом кэширования.
Таблица 5.5
Флаг Значение
1 2
FILE_FLAG_WRITE_THROUGH Приказывает Windows осуществлять немед-
ленную запись данных на диск. При этом воз-
можно использование КЭШа.
FILE_FLAG_NO_BUFFERING Приказывает системе открыть файл без ис-
пользования кэширования или буферизации,
что дает максимальную производительность.
Окончание табл. 5.5
1 2
133
                                                                            Таблица 5.4
      Аргумент                                        Описание
lpFileName                 Указатель на имя файла или устройства
DesiredAccess              Устанавливает вид доступа к объекту. Используются флаги GE-
                           NERIC_READ (чтение), GENERIC_WRITE (запись) или оба при
                           помощи оператора логического сложения. Значение 0 указывает
                           на необходимость проверки возможности доступа.
dwShareMode                Набор битовых флагов, указывающий на режим совместного
                           доступа к объекту. Если значение dwShareMode равно 0, совме-
                           стный доступ к объекту запрещен. Флаги FILE_SHARE_DELETE
                           (совместное удаление), FILE_SHARE_READ (совместное чте-
                           ние) и FILE_SHARE_WRITE (совместная запись).
lpSecurityAttributes       Указатель на структуру SECURITY_ATTRIBUTES, которая оп-
                           ределяет, будет ли создаваемый дескриптор наследоваться до-
                           черними процессами. Если аргумент lpSecurityAttributes имеет
                           значение NULL, дескриптор не будет наследоваться.
dwCreationDisposi-         Указывает, каким образом следует создать (или открыть) файл.
tion                       Допускается использовать следующие значения: CREATE_NEW
                           (создать новый файл; если файл существует, функция не сраба-
                           тывает), CREATE_ALWAYS (создать новый файл; если файл
                           существует, он перезаписывается), OPEN_EXISTING (открыть
                           файл; если файл не существует, функция не срабатывает),
                           OPEN_ALWAYS (открыть файл; если файл не существует, он
                           создается) или TRUNCATE_EXISTING (открыть файл и сделать
                           его равным нулю; если файл не существует- не срабатывает).
dwFlagsAndAttributes       Набор атрибутов и флагов, которыми должен обладать файл.
                           Например, если требуется, чтобы новый файл был скрытым, ис-
                           пользуйте значение FILE_ATTRIBUTE_HIDDEN. Другие воз-
                           можные значения флагов перечислены в табл. 5.5.
hTemplateFile              Содержит дескриптор с доступом GENERIC_READ. Это деск-
                           риптор шаблонного файла, атрибуты которого (включая расши-
                           ренные) будут присвоены создаваемому файлу.
      Наиболее интересным аргументом функции CreateFile() является предпоследний,
шестой аргумент, который является набором флагов доступа к файлу и атрибутов фай-
ловой системы. Используя различные комбинации флагов (табл. 5.5), можно настроить
доступ к файлу самым причудливым образом. Например, можно приказать системе уда-
лить файл сразу же после того, как он будет закрыт, или объявить, что файл будет ис-
пользоваться для перекрывающегося (overlapped) доступа (перекрывающийся доступ -
базовый метод осуществления асинхронного ввода/вывода). Помимо прочего флаги по-
зволяют управлять механизмом кэширования.
                                                                         Таблица 5.5
                Флаг                                     Значение
                       1                                        2
FILE_FLAG_WRITE_THROUGH                    Приказывает Windows осуществлять немед-
                                           ленную запись данных на диск. При этом воз-
                                           можно использование КЭШа.
FILE_FLAG_NO_BUFFERING                     Приказывает системе открыть файл без ис-
                                           пользования кэширования или буферизации,
                                           что дает максимальную производительность.
                                                                    Окончание табл. 5.5
                       1                                        2

                                            133