Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 08 по СиАОД(УТС).doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
674.82 Кб
Скачать

Командные символы

Чтобы сообщить программе TLIB, какие изменения необходимо сделать с библиотекой, нужно ввести командные символы (такие как +, -,-+, *, -*) непосредственно после имени модуля, имени объектного файла, либо имени библиотеки. Задать можно более одного действия, причем в любом порядке.

В Таблице 2 приводится список всех командных символов программы TLIB, тип имени файла, к которому применяется данная операция, и действия, выполняемые по данному командному символу:

Таблица 2

Команда Значение

+{objfile|lib} При употреблении данного символа с именем

объектного файла знак плюс (+) добавляет объ-

ектный файл к входной библиотеке, причем дан-

ный объектный файл становится последним моду-

лем в библиотеке. Для задания имени объектно-

го файла можно использовать спецификацию

маршрута. Поскольку программа LIB автомати-

чески предполагает расширение .OBJ, можно

опустить расширение в имени объектного файла.

Если знак (+) употребляется с именем библио-

теки, содержимое данной библиотеки добавляет-

ся к входной библиотеке. Имя библиотеки долж-

но иметь расширение .LIB.

-module Удаляет данный модуль из входной библиотеки.

Имя модуля не имеет ни имени маршрута, ни

расширения имени.

-+module Заменяет во входной библиотеке данный модуль.

Имена модулей не имеют ни наименований марш-

рутов, ни расширений. Утилита LIB удаляет

данный модуль, затем добавляет объектный

файл, имеющий то же самое, что и модуль, имя.

Объектный файл стандартно имеет расширение

.OBJ и располагается в текущем рабочем ката-

логе.

*module Копирует данный модуль из библиотеки в объек-

тный файл в текущем рабочем каталоге. Модуль

остается в библиотечном файле. При копирова-

нии модуля в объектный файл, программа LIB

добавляет расширение .OBJ.

-*module Перемещает данный объектный модуль из библио-

теки в объектный файл. Данная операция экви-

валентна копированию модуля в объектный файл,

как описано выше, затем происходит удаление

модуля из библиотеки.

Примеры работы с tlib

TLIB LANG -+HEAP;

Приведенный выше пример использует командный символ замены (-+) для замены с помощью программы TLIB модуля HEAP в библиотеке LANG.LIB. Утилита TLIB удаляет модуль HEAP из библиотеки, затем добавляет объектный файл HEAP.OBJ в качестве нового файла в библиотеку. Точка с запятой в конце командной строки просит программу TLIB на оставшиеся запросы использовать стандартные ответы. Это значит, что файл-листинг не будет создан, а данные изменения записываются в оригинальный библиотечный файл, вместо нового библиотечного файла.

TLIB LANG-HEAP+HEAP;

TLIB LANG+HEAP-HEAP;

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

TLIB FOR;

В данном примере программа LIB последовательно выполняет контроль библиотечного файла FOR. LIB. Никаких других действий не происходит. Утилита TLIB последовательно высвечивает обнаруженные ошибки и возвращается на уровень операционной системы.

TLIB LANG,LCROSS.PUB

В данном примере программа TLIB последовательно выполняет контроль библиотечного файла LANG.LIB и затем создает файл перекрестных ссылок с именем LCROSS.PUB.

TLIB FIRST -*STUFF *MORE, ,SECOND

В данном примере программа TLIB перемещает модуль STUFF из библиотеки FIRST.TLIB в объектный файл с именем STUFF.OBJ. В процессе модуль STUFF удаляется из библиотеки. Модуль MORE копируется из библиотеки в объектный файл с именем MORE.OBJ; модуль остается в библиотеке. Исправленная библиотека получает имя SECOND.LIB. Она содержит все модули из FIRST.LIB, исключая STUFF, который был удален с помощью командного символа (-*). Оригинальная библиотека FIRST.LIB остается неизменной.

TLIBFOR

+CURSOR+HEAP-HEAP*FOIBLES

CROSSLST

Содержимое приведенного выше файла ответов просит программу TLIB удалить модуль HEAP из библиотеки TLIBFOR.LIB, извлечь модуль FOIBLES и поместить его в объектный файл с именем FOIBLES.OBJ, добавить объектные файлы CURSOR.OBJ и HEAP.OBJ в качестве двух последних модулей в библиотеку. Наконец, программа TLIB создает файл перекрестных ссылок с именем CROSSLST.

Для того чтобы попрактиковаться в создании своих библиотечных файлов нужно:

1.Напишите несколько (от 3 до 5) простейших функций. Для каждой функции используйте свой собственный файл.

2.Скомпилируйте каждую функцию и получите файлы с расширением OBJ;

3.Соберите библиотеку из полученных объектных файлов в режиме диалога с программой TLIB;

4. Выполните операции удаления и обновления модулей из библиотеки;

5.Напишите файл ответов и с его помощью еще раз создайте библиотеку, запустив программу TLIB из командного файла.