Ассемблер для Windows



         

В Есть ли дополнительные средства упрощающие файловую обработку? - часть 2


Как видите, алгоритм работы с отображаемыми файлами весьма прост. Рассмотрим теперь новые для Вас функции.

Функция CreateFileMapping. Возвращает дескриптор отображаемого файла.

  • 1-й параметр. Дескриптор открытого файла.
  • 2-й параметр. Атрибут доступа, обычно полагают равным нулю.
  • 3-й параметр. Может принимать одно из следующих значений, и должен быть совместим с режимом разделения файла: PAGE_READONLY, PAGE_WRITECOPY, PAGE_READWRITE. Как Вы понимаете, этот атрибут определяет защиту отображаемого файла и не должен противоречить атрибуту файла, открытого с помощью CreateFile.
  • 4-й параметр. Старшая часть (32 бита) размера отображаемого файла.
  • 5-й параметр. Младшая часть размера отображаемого файла (как Вы понимаете, размер может и не совпадать с размером файла). Если оба параметра равны нулю, то размер полагается равным размеру открытого файла (1-й параметр).
  • 6-й параметр. Имя отображаемого файла. Необходимо только в том случае, если предполагается, что отображаемый файл будет использоваться несколькими процессами. В этом случае повторный вызов функции CreateFileMapping другими процессами с тем же именем приведет не к созданию нового отображаемого файла, а к возвращению уже созданного дескриптора.
  • Функция MapViewOfFile. Возвращает указатель на область памяти, где помещается файл или его часть.

    • 1-й параметр. Дескриптор, возвращенный функцией CreateFileMapping.
    • 2-й параметр. Определяет операцию, которую мы будем делать. Например, FILE_MAP_READ означает - только чтение, a FILE_MAP_WRITE - чтение и запись.
    • 3-й параметр. Старшая часть (32-байта) смещения в файле, откуда начинается копирование в память.
    • 4-й параметр. Младшая часть смещения в файле, откуда начинается копирование.
    • 5-й параметр. Определяет количество копируемых байт. Если вы хотите скопировать весь файл, то положите три последних параметра равными 0.
    • Функция FlushViewOfFile.

      • 1-й параметр. Указывает на область, записываемую в файл.
      • 2-й параметр. Определяет количество записываемых байт.
      • Функция UnmapViewOfFile.

        • 1-й параметр. Дескриптор отображаемого файла.
        • Вот, собственно, и вся теория отображаемых файлов. Материал весьма прост для программирования, и мы не приводим здесь программы. Я думаю, что читатель, добравшийся до данной главы сего повествования, без труда напишет свою программу, воспользовавшись изложенными выше материалами.

          45 Возможно, несколько правильнее сказать, что функция создает объект, под названием отображаемый файл.




          Содержание  Назад  Вперед