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


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


Поскольку, однако, подробное описание такой большой программы заняло бы слишком много места, ограничимся описанием поверхностным, но надеемся, что оно в сочетании с комментариями в самой программе даст читателю возможность в ней разобраться - пусть даже ценой некоторых интеллектуальных усилий. Программа обеспечивает создание и обслуживание библиотечного набора данных. Библиотека представляет собой файл, организованный разделами. Программа обслуживания библиотеки обеспечивает выход по заданному имени раздела на его начало, а затем обработку раздела как последовательного файла. Принципы организации библиотеки мы заимствуем из операционной системы ОС ЕС. Начальная часть библиотечного файла содержит некоторый форматированный участок, именуемый оглавлением, размер оглавления задается при создании библиотеки, тогда же выделяется и форматируется дисковое пространство для него. Оглавление состоит из элементов, каждый из которых описывает местоположение в библиотеке одного раздела. Для нашей программы формат элемента оглавления описывается структурой struct lib_dir (пример 10.7, файл 10_7.H). Имя элемента здесь не ASCIIZ-строка, а просто последовательность символов, дополняемая до нужной длины пробелами. Условимся, что код 0 в первом байте имени раздела является признаком пустого, свободного элемента. Простоты ради условимся также, что если библиотека рассчитана на хранение M разделов, то в оглавлении записывается M+1 элементов, самый первый (нулевой) элемент используется не по прямому назначению - его поле memb_size содержит число M. Разделы состоят из текстовых строк (ASCIIZ) и занимают непрерывные участки файлового пространства.

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

  • Задание имени библиотеки - вспомогательная операция, необходимая для большинства других. К задаваемому оператору имени файла программа присоединяет расширение LBR. Все последующие операции будут выполняться именно с этим файлом - пока не будет задано другое имя.
  • Создание библиотеки - создание файла <имя>.LBR (если он ранее не существовал), запись в файл заданного числа пустых элементов оглавления.



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