Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

25-30 / 26Файловая система NTFS. Доступ к данным

..doc
Скачиваний:
31
Добавлен:
13.03.2016
Размер:
29.7 Кб
Скачать

Windows предоставляет прикладным программам API-функцию CreateFile, которая может использоваться как для создания нового файла, так и для открытия существующего. В любом случае эта функция создает в системной памяти объект типа «открытый файл», именно потому название функции начинается со слова «Create».

Параметры этой функции многочисленны и дают достаточно хорошее представление о возможностях работы с файлами в Windows.

  • Имя

  • Режим доступа..

  • Режим разделения. Он может включать в себя разрешение другим процессам читать файл, записывать данные в файл, удалять файл или любую комбинацию этих разрешений, в том числе, разумеется, и отсутствие всех разрешений.

  • Атрибуты защиты.

  • Режим создания. Определяет действия функции в случаях, когда файл с заданным именем уже существует и когда не существует. Определены следующие режимы.

  • CREATE_NEW – Создается новый файл. Если файл уже существует, выдается ошибка.

  • CREATE_ALWAYS – Создается новый файл в любом случае, даже если файл с таким именем уже существует.

  • OPEN_EXISTING – Открывается существующий файл. Выдает ошибку, если файл не существует.

  • OPEN_ALWAYS – Если файл существует, то он открывается, если не существует – создается новый файл.

  • TRUNCATE_EXISTING – Открывается существующий файл, но все его содержимое удаляется. Если файл не существует, выдается ошибка.

  • Большой набор атрибутов и флагов.

К атрибутам файла относятся все те, которые Windows унаследовала от MS-DOS (только для чтения, скрытый, системный, архивный), а также атрибут «сжатый» (т.е. файл, создаваемый в NTFS, будет храниться в сжатом виде.

Флаги функции предоставляют, в частности, следующие возможности:

  • при операциях записи немедленно выполнять запись на диск (очищать кэш-буфера файла);

  • вообще исключить использование кэша для данного файла, всегда записывать и читать секторы данных непосредственно с диска;

  • указать системе желательность оптимальной буферизации для последовательного доступа или, наоборот, для произвольного доступа;

  • открыть файл для выполнения асинхронных операций;

  • указать системе, что файл должен быть автоматически удален сразу же, как только он будет закрыт.

Функция CreateFile возвращает хэндл открытого файла. Этот хэндл может затем использоваться при обращении к функциям чтения, записи, перемещения указателя, очистки буферов, блокирования фрагментов, закрытия фала и др.