Cтраница 1
Описатели файлов используются для описания свойств файлов данных. [1]
![]() |
Формат каталоговой записи в системе MS-DOS. [2] |
Однако в 32-байтовом описателе файла оставались незадействованными 10 байт ( см. рис. 6.29), что и было использовано. Это изменение не имеет никакого отношения к длинным именам, но используется в Windows 98, поэтому стоит обратить на него внимание. [3]
![]() |
Формат каталоговой записи в системе MS-DOS. [4] |
Затем в считанном каталоге ищется описатель файла, который требуется открыть. [5]
Описатель PRINT из этой группы описателей файла указывает, что окончательно данные должны быть расположены на печатной странице. [6]
Длина К строки символов, изображающей ключ, задается описателем файла KEYED ( К) в операторе DECLARE. При выполнении этого оператора запись выводится из переменной, указанной в дополнении FROM, и помещается в файл в соответствующем ( согласованным с требованием возрастания ключей) месте. [7]
Ситуация UNDEFINEDFILE возникает при попытке открыть файл, который не определен, или когда совокупность описателей файла противоречива. [8]
Преимущество этого метода состоит в том, что при удалении файла освободившееся место в каталоге точно подойдет для нового описателя файла. Тем не менее кучу придется все так же разгребать, и при чтении длинного имени из нее также может возникнуть прерывание из-за отсутствия страницы памяти. Однако имена файлов уже не должны начинаться с границы слов, поэтому символы-заполнители не потребуются. [9]
В состав системных управляющих таблиц входят управляющий блок БД, таблица нечитаемых блоков, таблица контрольных точек, управляющие блоки файлов, описатели файлов и другие таблицы. [10]
Описание данных выполняется с помощью описателей, которые подразделяются на следующие классы: описатели данных, описатели имени входа, описатели области действия, описатели способа размещения, описатели файлов. [11]
![]() |
Формат каталоговой записи с фрагментом длинного имени файла в Windows 98. [12] |
Имя формата MS-DOS хранится в каталоге прямо в описателе, показанном на рис. 6.30. Если у файла есть также длинное имя, оно хранится в одной или нескольких каталоговых записях, предшествующих описателю файла с именем в формате MS-DOS. Каждая такая запись содержит до 13 символов формата Unicode. Элементы имени хранятся в обратном порядке, начинаясь сразу перед описателем файла в формате MS-DOS и последующими фрагментами перед ним. [13]
Хотя каталоги в файловой системе MS-DOS переменного размера, используемые каталоговые записи, как и в СР / М, имеют фиксированный размер 32 байт. Формат описателя файла системы MS-DOS показан на рис. 6.29. В нем содержится имя файла, его атрибуты, дата и время создания, номер начального блока и точный размер файла. Имена файлов короче 8 3 символов выравниваются по левому краю полей и дополняются пробелами, каждое поле отдельно. Поле Attributes ( атрибуты) представляет собой новое поле, содержащее биты, указывающие, что для файла разрешено только чтение, что файл должен быть заархивирован, что файл является системным или скрытым. Запись в файл, для которого разрешено только чтение, не разрешается. Таким образом осуществляется защита файлов от случайной записи или удаления. Бит archived ( архивный) не устанавливается и не проверяется операционной системой MS-DOS. Он зарезервирован в описателе для архивирующих программ уровня пользователя, сбрасывающих этот бит при создании резервной копии файла, в то время как программы, модифицирующие файл, должны устанавливать этот бит. Таким образом архивирующая программа может определить, какие файлы подлежат архивации. Бит hidden ( скрытый файл) позволяет избежать отображения файла в перечне файлов каталога. Основное его назначение заключается в том, чтобы скрыть от неопытных пользователей файлы, назначение которых им неизвестно. [14]
При этом файловая система освободит все блоки, занимаемые файлом, в том числе и блок, в котором помещается сам i-узел. Таким образом, в одном из каталогов сохранится описатель файла, указывающий на неиспользуемый i-узел, чьи блоки могут быть вскоре выделены другим файлам. Решение также заключается в присваивании значения счетчика i-узла фактическому числу описателей файла. [15]