Управление файлами

Доступом называется обращение к файлу с целью чтения или записи в него информации.

Файловая система поддерживает два типа доступа к файлам:

□ последовательный метод доступа;

□ прямой (непосредственный) метод доступа.

При последовательном доступе записи из файла считываются подряд, строго в порядке их расположения в файле. Поэтому, чтобы обратиться (получить доступ) к определенной записи, необходимо читать все предьщущие. При прямом доступе обеспечивается непосредственное обращение к записи по ее номеру в файле. Механизм доступа к файлу и его записям при программировании также имеет два варианта:

□ доступ к файлу с использованием специальной таблицы — управляющего блока файла;

□ доступ к файлу по идентификатору.

Управляющий блок файла (FCB — File Control Block) содержит следующую информацию:

□ номер (букву) дисковода, где установлен диск с файлом;

□ имя файла и его расширение;

□ текущий номер блока в файле;

□ длину записи в байтах;

□ размер файла в байтах;

□ дату последней модификации файла;

□ относительный номер записи (текущий номер);

□ номер записи и т. д.

Некоторые из вышеназванных параметров требуют дополнительного пояснения. Файл состоит из блоков, объединяющих по 128 записей в каждом. Относительный номер записи — это порядковый номер записи в блоке. Текущий номер блока и относительный номер записи используются при последовательнрм доступе к записям файла. Номер записи — это параметр, объединяющий номер блока и относительный номер записи в блоке, он используется при произвольном доступе к записям файла. Важный параметр — длина записи (точнее, длина логической, кажущейся записи, которая может отличаться от длины физической записи из-за наличия различных служебных элементов в структуре записи и файла). Длина записи используется при определении числа байтов, пересылаемых при обмене информацией с ОЗУ и при определении положения записи внутри блока. Блок FCB позволяет получать доступ к файлам только в текущем каталоге. Идентификатор файла — ASCIIZ-строка, идентифицирующая файл. ASCIIZ- (ASCII-Zero) строка содержит следующую информацию:

□ номер (логическое имя) дисковода и путь к файлу (если нужно);

□ имя файла и его расширение;

□ нулевой байт (zero-байт).

Использование FCB для обращения к файлу позволяет реализовать произвольный и последовательный методы организации доступа, но часто оказывается довольно сложным, поэтому в версиях MS DOS, начиная с DOS 2.0 и выше, введено обращение к файлу по идентификатору, которое чаще всего и применяется на практике, если не требуется выполнять детализированные процедуры с отдельными дорожками и секторами диска. Каждый файл и в случае использования FCB, и в случае использования ASCIIZ должен иметь свой атрибут файла или просто атрибут.