На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 12 / Использование блоков управления файлами (FCB) Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Использование блоков управления файлами (FCB)

Обращения к функциям с 0Fh по 29h, введенные в первой версии операционной системы MS-DOS, используются вместе с блоком управ- ления файлом (FCB) для создания, модификации и удаления файла. Блок FCB представляет собой сегмент программы, записанный в памяти, в котором определяются параметры файла, управляемого программой. Операционная система MS-DOS и прикладная программа используют параметры блока FCB для установления местоположения файла, его сегмента, размера и других сведений об этом файле. Однако, поскольку для действительного создания всего блока FCB не существует обращений ни к каким функциям, блок FCB должен уже быть заранее определен до того, как в программе будут использованы относящиеся к файлу обращения к функциям. В любом случае, каждое из обращений к функциям, относящимся к файлу (с 0Fh по 29h), требует того, чтобы адрес памяти, где расположен блок FCB, был бы загружен в пару регистров DS:DX до начала выполнения функции. Это значит, что прикладная программа должна сначала создать блок FCB и загрузить его в известный адрес либо в сегменте данных, либо в области данных программного сегмента в памяти (в зависимости от того, что исходно задается программой).


Когда операционная система MS-DOS загружает программу, система создает и форматирует два блока FCB в сегменте программного префикса (PSP) программы. Адрес этих блоков FCB в префиксе PSP так же, как средства обращения к префиксу PSP, описываются в главе 3. Поля имен файлов заполняются из информации, вводимой в командной строке при вводе программы (как, например, в таком случае: "A>MUNG infile outfile"). Если, однако, характеристика файла содержит имя пути доступа, действительным в блоке FCB будет только номер дисковода. Кроме этого, в блоке FCB не будет появляться никаких директив по переадресации. И, наконец, отметим, что, если программа открывает первый блок FCB в префиксе PSP, второй блок FCB перезаписывается.


В таблице 13-10 представлена структура блока FCB и там указываются размеры и смещение адреса в памяти для каждого параметра в пределах блока FCB. Заметим, что не всеми параметрами в блоке FCB можно управлять из прикладной программы. Некоторые модифицируются только самой операционной системой MS-DOS, а другие могут модифицироваться и программой и операционной системой MS-DOS. В любом случае при создании FCB следует предусматривать место для всех параметров.


В таблице 13-10 поля с отрицательными смещениями используются при работе под управлением версий 2.0 и старше операционной системы MS-DOS, для превращения блока FCB в расширенный блок FCB, который позволяет вам использовать параметр атрибута файла в смещении "-1". Значение 0FFh должно располагаться в смещении - 7 для того, чтобы блок FCB был бы обозначен, как расширенный блок FCB.


   Таблица 13-10
 Формат блока FCB операционной системы MS-DOS
њњњњњњњњњњњљњњњњњњњњњљњњњњњњњњњњњњњњњњњњњњњљњњњњњњњњњњњњњњњњњњњњ
 Байт      ‹ Размер  ‹    Описание‹   Модифицируется
 смещения  ‹‹   ‹
њњњњњњњњњњњќњњњњњњњњњќњњњњњњњњњњњњњњњњњњњњњќњњњњњњњњњњњњњњњњњњњњ
 - 7       ‹   1     ‹ Шестнадцатиричное   ‹   Программой
  ‹‹ значение 0FF        ‹
 - 6       ‹   6     ‹ Зарезервировано     ‹   Программой
  ‹‹ (должен быть нуль)  ‹
 - 1       ‹   1     ‹ Атрибут файла       ‹   Программой  и
  ‹‹   ‹   операционной
  ‹‹   ‹   системой MS-DOS
   0       ‹   1     ‹ Номер дисковода (от ‹   Программой
  ‹‹ 0 до 16)   ‹   операционной
  ‹‹   ‹   системой MS-DOS
   1       ‹   8     ‹ Имя файла или       ‹   Программой
  ‹‹ устройства ‹
   9       ‹   3     ‹ Расширение файла    ‹   Программой
  ‹‹ или его тип‹
   12      ‹   2     ‹ Текущий блок        ‹   Программой
   14      ‹   2     ‹ Размер записи в     ‹
  ‹‹ байтах     ‹
   16      ‹   4     ‹ Размер файла в      ‹   Операционной
  ‹‹ байтах     ‹   системой MS-DOS
   20      ‹   2     ‹ Дата       ‹   Операционной
  ‹‹   ‹   системой MS-DOS
   22      ‹   10    ‹ Зарезервировано     ‹   Операционной
  ‹‹   ‹   системой MS-DOS
   32      ‹   1     ‹ Текущая запись      ‹   Программой
  ‹‹   ‹   операционной
  ‹‹   ‹   системой MS-DOS
   33      ‹   4     ‹ Номер произвольной  ‹   Программой
  ‹‹ записи     ‹   операционной
  ‹‹   ‹   системой MS-DOS
њњњњњњњњњњњ™њњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњњ™њњњњњњњњњњњњњњњњњњњњ

Значения смещения и размера записи задаются в десятичном виде.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz