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


Пример 12 - часть 4


Поэтому для библиотеки жизненно необходима операция сжатия - освобождения неиспользуемых фрагментов. Но реализация этой операции ничего не добавит к нашей основной теме - функциям DOS, поэтому предоставим ее читателю в качестве самостоятельного упражнения.

Наша программа состоит из четырех файлов: 10_7.H, 10_7.C, 10_7_A.C и 10_7_H.C. Первый файл включается в остальные файлы препроцессором Турбо-Си, три других файла объединяются в одну программу компоновщиком. Файл 10_7.C содержит главную функцию и вспомогательные функции, поддерживающие вывод данных на экран и прием данных от оператора. Файл 10_7_A.C содержит функции, обеспечивающие организацию операций на логическом уровне. Наконец, функции, сосредоточенные в файле 10_7_H.C, выполняют обращения к функциям метода дескрипторов DOS.

Обратим внимание лишь на некоторые особенности функций последнего файла. При создании файла (функция creat_lib) делается попытка сначала применить функцию DOS 0x5B (создать новый файл). Если эта функция возвращает ошибку (файл уже существует), то выдается запрос на создание его заново, и в этом случае применяется функция DOS 0x3C. При каждом открытии файла (функция open_ lib) считывается в память нулевой элемент оглавления и устанавливается размер оглавления (глобальная переменная memb_max). Получение информации о файле включает в себя обращение к трем функциям DOS - 0x42 (размер файла), 0x57 (дата и время), 0x43 (атрибут).




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