ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



Lib: утилита обслуживания библиотек
                            6.1. Общие сведения.

               
               
               Библиотека представляет собой набор объектных модулей,
         объединенных в одном файле.
               Библиотека может быть использована программой LINK для
         согласования внешних ссылок. 
               LIB  создает  для  библиотеки таблицу содержимого, где
         располагаются имена  объектных  модулей.  LINK  выбирает  из
         библиотеки  только  те  модули,  на которые имеются ссылки в
         обрабатываемой им программе.
               LIB  выполняет  с  библиотечными   файлами   следующие
         операции:
               1. Создание новой библиотеки.
               2. Проверка содержимого существующей библиотеки. 
               3. Печать листинга библиотечных ссылок.
               4. Сопровождение библиотек.
               
               Эти функции подробно описаны в последующих разделах.
               
               
               
               
               
                              6.2. Запуск LIB.

               
               
               Запуск LIB может быть осуществлен тремя способами:
               1. С использованием подсказок.
               2. При помощи командной строки DOS.
               3. С использованием файла ответа.
               
               
               Для запуска  LIB с использованием подсказок необходимо
         ввести командную строку, содержащую только имя программы LIB
         со  спецификацией  подоглавления,  если  она требуется.  LIB
         перейдет в диалоговый режим и серией  подсказок  запросит  у
         пользователя    информацию   о   следующих   объектах (ответ
         заключается в наборе требуемых символов  и  нажатии  клавиши

                                     - 59 -
         
         
         ENTER): 
               1. Имя  библиотеки,  с   которой  будет  производиться
                  работа. Если  при  ответе  не  указано  расширение,
                  предполагается  LIB.  Если  библиотеки  с введенным
                  именем не существует, LIB выдаст запрос:
                  Library file does not exist. Create?
                  Ответ y обеспечит создание библиотеки, n -  возврат
                  в  DOS.  В  этом  ответе  может  быть  задана опция
                  /PAGESIZE, описание которой приводится ниже.
               2. Операции  с  библиотекой.  Ответом  является  набор
                  команд   LIB,   которые  описаны  в  п.6.3.4.  Если
                  команды LIB не помещаются на строке, в ее последней
                  позиции  следует  поставить  признак  продолжения -
                  символ & и нажать ENTER,  после  чего  можно  будет
                  продолжать ввод команд. 
               3. Имя файла листинга. Если  не  было  задано  никаких
                  модификаций библиотеки, LIB создает файл листинга и
                  возвращает управление в DOS.
               4. Имя выходной библиотеки. Этот запрос  появляется  в
                  том случае, когда была специфицирована хотя бы одна
                  операция модификации библиотеки. Если при ответе не
                  указано  расширение, предполагается LIB. Библиотека
                  с указанным именем будет создана как копия  рабочей
                  библиотеки   и  все  операции  будут  производиться
                  именно с ней. Если нажать ENTER,  не  введя  имени,
                  операции будут производиться с рабочей библиотекой.
                  В этом случае для старой библиотеки  будет  создана
                  копия с расширением BAK.
                  
               Если в  каком-либо  ответе  после  первого встречается
         символ  ;  , LIB устанавливает оставшуюмя входную информацию
         по умолчанию. 
               В любом ответе могут быть заданы ответы на последующие
         запросы в формате командной строки для запуска LIB.
               
               Для  запуска  LIB    посредством   командной   строки,
         необходимо ввести командую строку следующего вида:
               
         LIB <имя старой библиотеки>[/PAGESIZE:<число>][<команды>]
         [,<имя файла листинга>][,<имя новой библиотеки>]]][;]
               
               Назначение библиотек и  правила  умолчания  аналогичны
         случаю  запуска  LIB с использованием подсказок. Команды LIB
         описаны в п.6.3.4. 
               Символ   ;   обозначает   конец   строки   и    должен
         кодироваться    последним,    если   он   есть.   Оставшаяся
         неопределенной информация устанавливается по умолчанию.
               
               Спецификации   исходной   информации  LIB  могут  быть
         заранее занесены в специальный файл ответа. Имя этого  файла
         с предшествующим символом @ и указанием пути поиска, если он
         нужен, может быть помещено в любом месте ответа на подсказку
         или  командной  строки  и трактуется, как если бы содержимое
         файла ответа было непосредственно  вставлено  в  это  место.
         Следует,    однако,   помнить,   что   комбинация   символов

                                     - 60 -
         
         
         CARRIAGE-RETURN / LINE-FEED в файле ответа  интерпретируется
         как ENTER в подсказке или запятая в командном файле. 
               Общий вид файла ответа:
         <имя библиотеки>[/PAGESIZE:<число>]
         [<команды>]
         [<имя файла листинга>]
         [<имя выходной библиотеки>]
               
               Каждая  группа  данных  должна задаваться на отдельной
         строке.  Если  группа  не  помещается  на  одной  строке,  в
         последней позиции строки должен стоять признак продолжения -
         символ  & . 
               В файле ответа  могут  быть  опущены  компоненты,  уже
         определенные ответами на подсказки или командной строкой. 
               При обнаружении в файле ответа симвода ; остаток файла
         игнорируется,    и   оставшаяся   неопределенной  информация
         устанавливается по умолчанию.
               При использовании файла ответа его содержимое выдается
         на  консоль  в  форме  подсказок.  Если  определена  не  вся
         информация LIB переходит в диалоговый режим.
               Если  файл  ответа  не  содержит  комбинации  символов
         CARRIAGE-RETURN  /  LINE-FEED или символа ;  , LIB выдает на
         консоль последнюю строку файла и ожидает нажатия ENTER. 
               
               Единственная опция LIB, задаваемая при  имени  рабочей
         библиотеки,  определяет  размер  страницы библиотеки и имеет
         вид:
         /PAGEZIZE:<число>       или   /P:<число>
               Указанное  число  задает  размер страницы библиотеки в
         байтах и должно быть целым четным числом в пределах от 2  до
         32768. По умолчанию принимается 128 для новой библиотеки или
         размер   страницы   существующей библиотеки. 
               Размер страницы  влияет  на  выравнивание  хранимых  в
         библиотеке  модулей.  Модули  всегда  располагаются с начала
         страницы, считая от начала файла. 
               Из-за  индексной   технологии   поиска   и   хранения,
         реализуемой  LIB,  библиотека  с  большим  размером страницы
         может содержать большее  число  модулей.  Однако,  при  этом
         возможен   значительный   перерасход   памяти   на    диске.
         Рекомендуется  создавать   библиотеки   с   малым   размером 
         страницы. 
               
               Имя  каждого файла  может сопровождаться информацией о
         подоглавлении,  содержащем этот  файл, иначе поиск исходного
         файла или создание выходного файла будет  осуществляться   в
         текущем подоглавлении.
               Работа  LIB   может  быть  в  любой  момент прекращена
         нажатием клавиш CONTROL-C.
               
               
               
               
               
               
               

                                     - 61 -
         
         
                        6.3. Функции и команды LIB.
               
               
               Среди   операций   с  библиотеками,  выполняемых  LIB,
         следует различать функции LIB и команды LIB. 
               Функции  LIB  не  приводят  ни  к  каким  модификациям
         существующих данных. Они описаны в пп.6.3.1, 6.3.2 и 6.3.3.
               Команды  LIB  предназначены для модификации библиотек.
         Выполнение команд всегда влечет за собой создание  резервной
         копии  исходной библиотеки, хранящей состояние библиотеки до
         начала коррекций. Именно команды, а не функции LIB  вводятся
         в  ответе на подсказку, в командной строке и в файле ответа.
         Команды LIB описаны в п.6.3.4.
               
               
               
               
                      6.3.1. Создание новой библиотеки.

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

               
               Проверка  содержимого   библиотеки   выполняется   при
         задании  во  всех  режимах запуска только имени библиотеки и
         символа ; . Она заключается  в  проверке  корректности  всех
         входов  библиотеки, что может производиться, например, после
         перемещения библиотеки.
               LIB автоматически  осуществляет  проверку  содержимого
         каждого добавляемого в библиотеку модуля.
               
               
               
               
               
                  6.3.3. Листинг перекрестных ссылок библиотеки.

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

                                     - 62 -
         
         
               Листинг перекрестных ссылок содержит 2 списка:
               1. Список всех общих символов в библиотеке с указанием
         имен содержащих их модулей.
               2.Список модулей библиотеки с указанием содержащихся в
         них общих символов.
               
               
               
               
               
                           6.3.4. Команды LIB.

               
               Команды  LIB  служат  для  сопровождения  библиотек  и
         обеспечивают   добавление,   удаление,   замену   модулей  в
         библиотеке,  а также копирование  и  перемещение  модулей  в
         новые библиотеки.
               Команды LIB описаны ниже.
               
               
               1. Добавление модуля в библиотеку. Синтаксис:
               
               +<имя объектного файла>
               
               Модуль,  находящийся  в указанном объектном файле, имя
         которого, если  нужно  дополнено  описанием  пути  поиска  в
         подоглавлениях,  добавляется  в  текущую библиотеку. Если не
         указано расширение имени  объектного  файла,  предполагается
         OBJ.
               Модуль помещается в библиотеку под именем, совпадающим
         с базовым именем объектного файла.
               Между знаком + и именем файла не должно быть пробелов.
               
               
               2. Удаление модуля из библиотеки. Синтаксис:
               
               -<имя модуля>
               
               Модуль  с  указанным  именем  удаляется   из   текущей
         библиотеки. 
               Следует  иметь  в  виду,  что  команды удаления всегда
         отрабатываются до команд добавления независимо от их порядка
         в  командной  строке.  Такой  порядок спасает LIB от попыток
         замены существующей версии модуля на новую версию.
               Имена  модулей  могут  задаваться  как   на   регистре
         строчных букв, так и на регистре заглавных букв.
               
               
               3. Замена модуля библиотеки. Синтаксис:
               
               -+<имя модуля>
               
               Модуль   с  указанным  именем  замещается  модулем  из
         объектного файла, имеющим то же базовое имя, что и указанное
         имя,  и  расширение OBJ. LIB сначала удаляет модуль, а затем

                                     - 63 -
         
         
         ищет файл.
               Имена  модулей  могут  задаваться  как   на   регистре
         строчных букв, так и на регистре заглавных букв.
               
               
               4. Копирование модуля. Синтаксис:
               
               *<имя модуля>
               
               Модуль с указанным именем копируется  из  библиотеки в
         объектный   файл,  создаваемый  в  текущем  подоглавлении  и
         имеющий  базовое  имя,  совпадающее  с  именем   модуля,   и
         расширение OBJ.
               Имена  модулей  могут  задаваться  как   на   регистре
         строчных букв, так и на регистре заглавных букв.
               
               
               5. Перемещение модуля. Синтаксис:
               
               -*<имя модуля>
               
               Работа  этой  команды аналогична копированю с той лишь
         разницей,  что  после  копирования   модуль   удаляется   из
         библиотеки.
               
               
               6. Объединение библиотек. Синтаксис:
               
               +<имя библиотеки>
               
               Содержимое  указанной библиотеки добавляется в текущую
         библиотеку. Следует помнить, что в  этом  случае  расширение
         имени  опускать  нельзя,  т.к.  тогда  указанное  имя  будет
         интерпретироваться как имя объектного файла.
               Модули помещаются в конец текущей библиотеки. Исходная
         библиотека не изменяется.
               Этой командой в библиотеки MS-DOS могут быть добавлены
         библиотеки XENIX или INTEL.


© KOAP Open Portal 2000



Яндекс цитирования