Технологии доступа к данным в информационных системах: Файловые системы FAT. Павлов А.Ю. - 13 стр.

UptoLike

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

Флаг Описание
FILE_FLAG_WRITE_THROUGH
Отмена промежуточного кэширования данных для
уменьшения вероятности потери данных при
аварии
FILE_FLAG_NO_BUFFERING
Отмена промежуточной буферизации или
кэширования. При использовании этого флага
необходимо выполнять чтение и запись порциями,
кратными размеру сектора (обычно 512 байт)
FILE_FLAG_OVERLAPPED
Выполнение чтения и записи асинхронно. Во время
асинхронного чтения или записи приложение
может продолжать обработку данных
FILE_FLAG_RANDOM_ACCESS
Указывает, что к файлу будет выполняться
произвольный доступ. Флаг предназначен для
оптимизации кэширования
FILE_FLAG_SEQUENTIAL_SCAN
Указывает, что к файлу будет выполняться
последовательный доступ от начала файла к его
концу. Флаг предназначен для оптимизации
кэширования
FILE_FLAG_DELETE_ON_CLOSE
Файл будет удален сразу после того, как
приложение закроет его идентификатор. Этот флаг
удобно использовать для временных файлов
FILE_FLAG_BACKUP_SEMANTICS
Файл будет использован для выполнения операции
выгрузки или восстановления. При этом
выполняется проверка прав доступа
FILE_FLAG_POSIX_SEMANTICS
Доступ к файлу будет выполняться в соответствии
со спецификацией POSIX
И наконец, последний параметр hTemplateFile предназначен для доступа к файлу
шаблона с расширенными атрибутами для создаваемого файл.
В случае успешного завершения функция CreateFile возвращает идентификатор
созданного или открытого объекта. При ошибке возвращается значение
INVALID_HANDLE_VALUE (а не NULL, как можно было бы предположить). Код
ошибки можно определить при помощи функции GetLastError.
В том случае, если файл
уже существует и были указаны константа
CREATE_ALWAYS или OPEN_ALWAYS, функция CreateFile не возвращает кода
ошибки. В то же время в этой ситуации функция GetLastError возвращает значение
ERROR_ALREADY_EXISTS.
Функция CloseHandle позволяет закрыть объект. Она имеет единственный пара-
метр - идентификатор закрываемого объекта, полученный от функции CreateFile.
С помощью функций ReadFile и WriteFile приложение может выполнять соот-
ветственно чтение из объекта
и запись в объект.
BOOL ReadFile(
HANDLE hFile, // идентификатор файла
LPVOID IpBuffer, // адрес буфера для данных
DWORD nNumberOfBytesToRead, // количество байт, которое необходимо прочесть в буфер