Меню сайта

Урок 85. Блок управления файлом (FCB). 1 Часть

Прежде, чем перейти к упомянутому примеру,необходимо рассмотреть
— — — формируемую DOS структуру данных — блокуправления файлом FCB (File
— — — Control Block), который являетсясущественным элементом файловой
— — — системы и участвует во всех файловыхоперациях.

— — — — — Блок управления файлом обеспечивает связьпользовательской
— — — программы с функциями DOS. При любойфайловой операции происходит
— — — обращение к блоку FCB. На Фиг.5.5 показансостав стандартного
— — — блока FCB. Имеется модификация блока FCB,называемая расширенным
— — — блоком FCB, которая применяется вспециальных случаях, когда нужно
— — — «скрыть» файл. Скрытый файлзащищен от записи. Это значит, что
— — — программа не может модифицироватьсодержимое этого файла, не
— — — изменив предварительно его блока FCB.Скрытый файл не фигурирует в
— — — листинге справочника. Скрыть файл — одиниз простейших способов
— — — защиты файла от неумелого пользователя. Вприводимых примерах
— — — используются только стандартные блоки FCB.

— — — — — Поля данных блока FCB охватывают всеатрибуты файла. Номер
— — — дисковода, имя и тип файла составляютидентификатор файла. Размер
— — — файла и дата яаляются атрибутами файла,которые приводятся в
— — — листинге справочника. Оставшиеся поля -текущий номер блока, длина
— — — записи и номер записи при произвольномдоступе — служат для
— — — определения местоположения внутри файла приоперациях чтения и
— — — записи. Длина записи указывает на числобайтов в определяемой
— — — пользователем записи. Так как все операциичтения и записи в файл
— — — начинаются с границы записи, то длиназаписи определяет количество
— — — данных, обрабатываемых во время каждой изэтих операций.
— — — — — Существуют два способа определения текущейзаписи при обращении
— — — к файлу. При первом, последовательном,способе записи
— — — обрабатываются по порядку. При этомтекущий номер блока и
— — — относительный номер записи определяютзапись, которая будет
— — — обрабатываться следующей. По мере того,как программа выполняет
— — — операции чтения или записи, DOSувеличивает на 1 относительный
— — — номер записи, чтобы он указывал наследующую запись. Выполнение

— — — — — — — — — -ЪДДДДї
— — — — — — — -0 і — — — і — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Номер носителя
— — — — — — — — — -ГДДДДЕДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
— — — — — — — -1 і — — — і — — — — — і — — — і — — — — — -і — — — і — — — і — — — — і — — — і — — — — — — — — -Имя файла
— — — — — — — — — -ГДДДДЕДДДДЕДДДДЕДДДДБДДДДБДДДДБДДДДБДДДДЩ
— — — — — — — -9 і — — — і — — — — — і — — — і — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Расширение
— — — — — — — — — -ГДДДДЕДДДДЕДДДДЩ
— — — — — — -0С і — — — і — — — — — і — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Текущий блок
— — — — — — — — — -ГДДДДЕДДДДґ
— — — — — — -0E і — — — і — — — — — і — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Размер записи
— — — — — — — — — -ГДДДДЕДДДДЕДДДДВДДДДї
— — — — — — -10 і — — — і — — — — — і — — — і — — — — — — і — — — — — — — — — — — — — — — — — — — — — — — — — Размер файла
— — — — — — — — — -ГДДДДЕДДДДЕДДДДБДДДДЩ
— — — — — — -14 і — — — і — — — — — і — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Дата
— — — — — — — — — -ГДДДДЕДДДДЕДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДДї
— — — — — — -16 і — — — і — — — — — і — — — і — — — — — -і — — — і — — — і — — — — і — — — і — — -і — — — — — і — — — Зарезервировано
— — — — — — — — — -ГДДДДЕДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДДЩ
&
nbsp- — — — — — -20 і — — — і — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Относительная запись
— — — — — — — — — -ГДДДДЕДДДДВДДДДВДДДДї — — — — — — — — — — — — — — — — — — — — — — — — — — (нумерация в блоке)
— — — — — — -21 і — — — і — — — — — і — — — і — — — — — — і — — — — — — — — — — — — — — — — — — — — — — — — — Номер записи
— — — — — — — — — -АДДДДБДДДДБДДДДБДДДДЩ — — — — — — — — — — — — — — — — — — — — — — — — — — прямого доступа

— — — — — — — — — — — — -Фиг. 5.5 Блок управления файлом

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

— — — — — Программа может обращаться к файлу,используя также и
— — — произвольный доступ. Произвольный в данномслучае не означает, что
— — — запись выбирается случайным образом.Наоборот, это значит, что
— — — программа может выбрать в качествеследующей любую запись в файле.
— — — По-другому такой файл называют файлом спрямым доступом, так как у
— — — программы имеется непосредственный доступк любой записи.

— — — — — Программа может обращаться к файлу любымиз двух указанных
— — — способов. При последовательных операцияхDOS автоматически изменяет
— — — в блоке FCB значение поля относительногономера записи. При
— — — произвольном доступе к файлу номер записидолжен определяться
— — — программой. В файловой системе файл спроизвольным доступом
— — — является аналогом вектора. Точно так же,как для обращения к любому
— — — элементу вектора программа должна задатьзначение соответствующего
— — — индекса, так и при обращение к записи вфайле с произвольным
— — — доступом номер записи должен определятьсяпрограммой.

— — — — — Теперь можно рассмотреть пример программы,использующей блок
— — — FCB и функции DOS. На Фиг. 5.6 приведенадлинная программа, которая
— — — реально мало что делает. Ее цель -продемонстрировать использование
— — — блока FCB и функци DOS, связанных спрерыванием 21H. Однако
— — — содержащиеся в этой программе операциимогут применяться в реальных
— — — задачах.

Категория: Программирование на Ассемблере | Дата: 30.01.13

Меню раздела
Блок