Файловая система DOS
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
3.7.
3.8.
3.9.
3.10.
Теперь, после того, как мы познакомились с логической структурой диска в MS-DOS, можно приступить к изучению одной из самых развитых подсистем операционной системы - файловой системы.
Сервис файловой системы доступен программе через прерывание MS-DOS INT21h. Многочисленные функции этого прерывания, относящиеся к файловой системе, можно разбить на группы:
Функции первой группы позволяют программе получить разностороннюю информацию, касающуюся текущего состояния дисковой подсистемы - текущие используемые диск и каталог, размер свободного места на диске, параметры логического диска и т.д.
Функции второй группы выполняют все необходимые операции с каталогами - создание, переименование, уничтожение каталогов, изменение текущего каталога и т.д.
Третья группа функций позволяет программе выполнять практически любые операции над файлами - создание, удаление, чтение/запись, переименование, копирование, пересылка и т.п.
Заметим, что существует два класса функций для работы с файлами. Первый класс использует управляющие блоки файлов FCB. Эти функции исплоьзовались в MS-DOS версий 1.х и имеют в настоящее время чисто исторический интерес. Вам они скорее всего никогда не будут нужны, за исключением одного случая - если вам надо составить программу, способную работать под управлением MS-DOS версии 1.0 или 1.1. В этой книге мы не будем упоминать функции, предназначенные для работы с файлами через FCB. При необходимости вы сможете найти информацию об этих функциях в руководстве по операционной системе MS-DOS.
Второй класс использует файловые индексы (handle). Этот класс функций впервые появился в MS-DOS версии 2.0. Эти функции аналогичны используемым в операционной системе UNIX.
Смысл файлового индекса очень прост. Для того чтобы начать работу с файлом, программа должна вызывать определенную функцию DOS, "открывающую" этот файл. Процесс открытия файла заключается в присвоении этому файлу определенного числа (индекса) и выполнении некоторых других инициализирующих действий. Для выполнения каких-либо операций с файлом программа, вызывая соответствующую функцию MS-DOS, должна указать индекс этого файла.
Первые пять файловых индексов зарезервированы операционной системой:
0 | Стандартное устройство ввода (клавиатура) |
1 | Стандартное устройство вывода (экран) |
2 | Стандартное устройство для вывода сообщений об ошибках (экран) |
3 | Стандартное устройство последовательного ввода/вывода, обычно это асинхронный адаптер COM1. |
4 | Стандартное печатающее устройство (обычно первый принтерный порт LPT1) |
Одно из преимуществ второго класса файловых функций - возможность одновременной работы с файлами, находящимися в разных каталогах.
Состав функций MS-DOS, предназначенных для работы с файловой системой, достаточно разнообразен и функционально полон. Только в очень редких случаях, связанных в основном с организацией защиты информации от несанкционированного доступа, вам может потребоваться доступ к диску на более низком уровне. Если ваша программа использует для работы с файлами только документированные функции операционной системы, ее работа не будет зависеть от аппаратных средств компьютера, от используемой для создания разделов диска утилиты.
Описание функций MS-DOS, предназначенных для работы с файловой системой, мы начнем с функций получения справочной информации.