Операционная система MS DOS (том 2)


Файлы и каталоги - часть 2


Область данных разбита на кластеры, причем нумерация кластеров начинается с числа 2. Кластеру с номером 2 соответствуют первые сектора области данных. Теперь мы можем привести формулу, которая позволит нам связать номер кластера с номерами секторов, занимаемых им на логическом диске:

SectNu = DataStart + ((ClustNu-2) * clustsize)

В этой формуле:

SectNu - номер первого сектора, распределенного кластеру с номером ClustNu;

DataStart = ressecs+(fatsize*fatcnt)+(sectsize/(32*rootsize));

ClustNu - номер кластера, для которого необходимо определить номер первого сектора;

clustsize - количество секторов, занимаемых кластером, находится в блоке параметров BIOS.

Этой формулой мы воспользуемся для чтения корневого каталога.

Как мы уже говорили, любой каталог содержит 32-байтовые элементы - дескрипторы, описывающие файлы и другие каталоги. Приведем формат дескриптора:

Смещение Размер Содержимое
(+0) 8 Имя файла или каталога, выравненное на левую границу и дополненное пробелами.
(+8) 3 Расширение имени файла, выравненное на левую границу и дополненное пробелами.
(+11) 1 Атрибуты файла.
(+12) 10 Зарезервировано.
(+22) 2 Время создания файла или время его последней модификации.
(+24) 2 Дата создания файла или дата его последней модификации.
(+26) 2 Номер первого кластера, распределенного файлу.
(+28) 4 Размер файла в байтах.

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

0 Файл предназначен только для чтения, в этот файл нельзя писать и его нельзя стирать.
1 Скрытый файл, этот файл не будет появляться в списке файлов, создаваемом командой операционной системы DIR.
2 Системный файл. Этот бит обычно установлен в файлах, являющихся составной частью операционной системы.
3 Данный дескриптор описывает метку диска. Для этого дескриптора поля имени файла и расширения имени файла должны рассматриваться как одно поле длиной 11 байтов. Это поле содержит метку диска.
4 Дескриптор описывает файл, являющийся подкаталогом данного каталога.
5 Флаг архивации. Если этот бит установлен в 1, то это означает, что данный файл не был выгружен утилитой архивации (например, программой BACKUP).
6-7 Зарезервированы.
<


- Начало -  - Назад -  - Вперед -