Сборник по задачам и примерам Assembler



         

Создание, открытие, закрытие и удаление файла - часть 2


  • 0PEN_ALWAYS=4 — открыть файл при его существовании и создать его если файла нет;

    TRUNCATE_EXISTING=5 — открыть файл с усечением его до нулевой длины; если файл не существует, то формируется ошибка;

    DwFlagsAndAttributes — флаги и атрибуты; этот параметр используется для задания характеристик создаваемого файла:

  • FILE_ATTRIBUTE_READ0NLY=OOOO0OOlh - файл только для чтения;
  • FILE_ATTRIBUTE_HIDDEN=00000002h - скрытый файл;
  • FILE_ATTRIBUTE_SYSTEM=00000004h - системный файл;
  • FILE_ATrRIBUTE_DIRECTORY=OO0000lOh - каталог;
  • FILE ATTRIBUTE ARCHIVE=00000020h - архивный ф'айл;
  • FILE_ATTRIBUTE_N0RMAL=00000080h - обычный файл для чтения-записи (этот атрибут нельзя комбинировать с другими);
  • FILE_ATTRIBUTE_TEMPORARY=0000Ol00h - создается временный файл (преимущество этого файла в том, что система стремится не записывать этот файл на диск, а работать с ним в памяти; этот атрибут выгодно комбинировать с флагом FILE_FLAG_DELETE_ON_CLOSE, тогда после закрытия файла в программе он будет удален, не оставив следов на диске, иначе, как и bMS DOS, программе придется «подчищать» за собой содержимое диска);
  • FILE_FLAG_WRITE_THR0UGH=80000000h - не использовать промежуточное кэширование при записи на диск, а все изменения записывать прямо на диск;
  • FILE_FLAG_NO_BUFFERING=20000000h - не использовать средства буферизации операционной системы;
  • FILE_FLAG_RANDOM_ACCESS=10000000h - прямой доступ к файлу (установка этого флага или флага
  • ILE_FLAG_SEQUENTIAL_SCAN позволяет оптимизировать системе процесс кэширования);
  • FILE_FLAG_SEQUENTIAL_SCAN=08000000h - последовательный доступ к файлу; 0
  • ILE_FLAG_DELETE_0N_CL0SE=04000000h - удалить файл после его закрытия (см. описание атрибута
  • ILEATTRIBUTETEMPORARY);
  • FILE_FLAG_0VERLAPPED=40000000h - асинхронный доступ к файлу (синхронность означает то, что программа, вызвавшая функцию для доступа к файлу, приостанавливается до тех пор, пока не закончит работу функция ввода-вывода);
  • hTemplateFile — параметр используется только при создании нового файла, его значением является дескриптор другого существующего и предварительно открытого файла, а новый файл создается с теми же значениями атрибутов и флагов, что и у файла, дескриптор которого указан в параметре hTemplateFile.
  • При удачном завершении функция возвращает в регистре ЕАХ дескриптор нового файла. В случае неудачи функция возвращает в регистре ЕАХ значение NULL.




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