Системное программное обеспечение персональных ЭВМ


10.4. Средства работы с файлами DOS



10.4. Средства работы с файлами DOS

10.4.1. Два метода ввода-вывода

В предыдущем примере мы поставили себе искусственное ограничение - использовать для работы с файлом только средства BIOS. В реальной работе программист, конечно же не связан такими ограничениями, в его распоряжении имеется богатый набор средств работы с файлами, каталогами и дисками, обеспечиваемых DOS.

В DOS имеются два совершенно независимых метода работы с файлами: метод Управляющих Блоков Файлов (FCB - File Control Block) и метод файловых дескрипторов (Handle - переводится также как файловые описатель, файловое число, файловый индекс). Первый метод остался "по наследству" от старых версий DOS и далее - от CP/M. Второй метод, впервые реализованный в DOS 2.0, является предпочтительным в новых разработках, поэтому описание начнем с него.

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

0- стандартный файл ввода (обычно - клавиатура);
1- стандартный файл вывода (обычно - экран);
2- стандартный файл вывода сообщений об ошибках (всегда - экран);
3- стандартный файл AUX (асинхронный порт);
4- стандартный файл печати (1-й параллельный принтер).

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

При использовании метода FCB программист должен построить в памяти блок FCB, формат которого описывается следующей структурой:




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