Мегаобучалка Главная | О нас | Обратная связь


Работа с файловой системой DOS



2019-12-29 151 Обсуждений (0)
Работа с файловой системой DOS 0.00 из 5.00 0 оценок




Сервис файловой системы доступен программе через прерывание MS-DOS INT 21h. Многочисленные функции этого прерывания, относящиеся к файловой системе, можно разбить на следующие группы:

· получение справочной информации;

· работа с каталогами;

· работа с файлами.

Функции первой группы позволяют программе получить разностороннюю информацию, касающуюся текущего состояния дисковой подсистемы - текущие используемые диск и каталог, размер свободного места на диске, параметры логического диска и т.д.

Функции второй группы выполняют все необходимые операции с каталогами - создание, переименование, уничтожение каталогов, изменение текущего каталога и т.д.

Третья группа функций позволяет программе выполнять практически любые операции над файлами - создание, удаление, чтение-запись, переименование, копирование, пересылка и т.п.

Функции используют файловые индексы (handle). Смысл файлового индекса очень прост. Для того, чтобы начать работу с файлом, программа должна вызвать определенную функцию DOS, «открывающую» этот файл. Процесс открытия файла заключается в присвоении этому файлу определенного числа (индекса) и выполнении некоторых других инициализирующих действий. Для выполнения каких-либо операций с файлом программа, вызывая соответствующую функцию MS-DOS, должна указать индекс этого файла.

Первые пять файловых индексов зарезервированы операционной системой:

0 - стандартное устройство ввода (клавиатура);

1 - стандартное устройство вывода (экран);

2 - стандартное устройство для вывода сообщений об ошибках (экран);

3 - стандартное устройство последовательного ввода-вывода, обычно это асинхронный адаптер COM1;

4 - стандартное печатающее устройство (обычно первый принтерный порт LPT1).

Зарезервированные файловые индексы всегда доступны программе. Для устройств, соответствующих этим индексам, не требуется выполнять операцию открытия.

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

Состав функций MS-DOS, предназначенных для работы с файловой системой, достаточно разнообразен и функционально полон. Только в очень редких случаях, связанных в основном с организацией защиты информации от несанкционированного доступа, может потребоваться доступ к диску на более низком уровне. Если программа использует для работы с файлами только документированные функции операционной системы, ее работа не будет зависеть от аппаратных средств компьютера, от используемой для создания разделов диска утилиты.

Получение справочной информации

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

В любой момент времени программа может узнать текущие диск или каталог, а также заменить их. Для этого она должна использовать специальные функции прерывания INT 21h.

Для того, чтобы узнать номер текущего дисковода, программа может воспользоваться функцией 19h.

Для того, чтобы узнать текущий каталог, можно воспользоваться функцией 47h.

Создание, удаление и переименование каталогов

После форматирование логический диск содержит корневой каталог. Если диск форматируется как системный, в этом каталоге могут находиться дескрипторы файлов операционной системы IO.SYS, MSDOS.SYS, COMMAND.COM.

Для создания каталога используется функция 39h прерывания INT 21h.

Удалить существующий каталог можно с помощью функции 3Ah.

Поиск в каталогах

Пара функций 4Eh и 4Fh предназначена для сканирования каталогов.

Эти функции используются вместе следующим образом:

1. Вызывается функция 4Eh для поиска в каталоге файла, соответствующего образцу. В образце можно использовать символы ? и *, которые означают соответственно один любой символ и любое количество любых символов. Информация о найденном файле располагается в специальной области, назначенной каждой работающей программе, - области DTA.

2. Вызывается в цикле функция 4Fh для поиска остальных файлов, удовлетворяющих образцу, заданному при вызове функции 4Eh. Условие завершения цикла - отсутствие в каталоге указанных файлов.

Работа с файлами

Для создания файла предназначена функция 3Ch прерывания INT 21h. С помощью этой функции может быть создан файл как в текущем, так и в любом другом каталоге. Если файл с указанным именем уже существует, он обрезается до нулевой длины.

Дополнительно функция 3Ch выполняет операцию открытия только что созданного файла, возвращая программе файловый индекс. При создании файла программа может указать требуемые атрибуты, которые будут использованы другими функциями для определения возможности предоставления доступа к файлу.

Операционная система игнорирует попытки создания с помощью этой функции каталогов или метки диска.

Чтение-запись файлов

Для записи данных в файл предназначена функция 40h прерывания INT 21h.

Для чтения данных из файла (или устройства посимвольной обработки) предназначена функция 3Fh прерывания INT 21h.

Позиционирование

Установить файловый указатель в нужную вам позицию можно с помощью функции 42h прерывания INT 21h MS-DOS.

Изменение атрибутов, времени и даты файлов

Для работы с полем атрибутов файла предназначена функция 43h прерывания INT 21h. Для работы с полями времени и даты последней модификации файла предназначена функция 57h прерывания INT 21h.

Буферизация ввода-вывода

Ввод-вывод для дисков в операционной системе MS-DOS буферизован. Операционная система MS-DOS имеет несколько буферов. Их количество зависит от оператора BUFFERS, находящегося в файле CONFIG.SYS. Этот оператор позволяет определить от 2 до 99 буферов. Если файл CONFIG.SYS не содержит оператора BUFFERS, по умолчанию используются два буфера.

Если программа интенсивно использует обращение к каталогам файловой системы, можно использовать утилиту MS-DOS FASTOPEN. Например, при использовании следующей команды в оперативной памяти будет храниться информация о расположении максимально о 100 файлах и каталогах:

FASTOPEN c:=100

Буферизация данных имеет и свои недостатки. Если в результате аварии в питающей сети или по какой-то другой причине компьютер выключится, то информация, хранящаяся в буферах и не записанная на диск, будет потеряна. При закрытии файла все буфера, связанные с ним, сбрасываются на диск.

Если надо сбросить буфера, не закрывая файл, это можно сделать с помощью функции 68h прерывания INT 21h. Дополнительно обновляется дескриптор файла в каталоге, а именно поля времени, даты и размера файла. Функция расширенного открытия файлов 6Ch, входящая в состав MS-DOS, позволяет при открытии файла отменить буферизацию.



2019-12-29 151 Обсуждений (0)
Работа с файловой системой DOS 0.00 из 5.00 0 оценок









Обсуждение в статье: Работа с файловой системой DOS

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (151)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)