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