




















                Операционная система МОС ВП



             Подсистема разработки программ



                      БИБЛИОТЕКАРЬ



                Руководство пользователя



                     00152-01 92 16



                      Листов 55















                       1987




                          - 2 -

                      00152-01 92 16




                        АННОТАЦИЯ



     Настоящий документ предназначен для всех  пользовате-

лей системы МОС ВП с целью  изучения  возможностей  работы

программы библиотекарь и применения  ее  для  обслуживания

библиотек.

     В документе описывается программа библиотекарь, кото-

рая используется для создания, корректировки,  модификации

всех типов библиотек системы МОС ВП.

     Документ  содержит  подробное  описание  возможностей

программы библиотекарь: типы библиотек, форматы и описания

команд, квалификаторов.

     В документе  также  приведены  примеры  использования

программы.




                          - 3 -

                      00152-01 92 16


                    СОДЕРЖАНИЕ



1.       Назначение и условия выполнения программы.....  5

2.       Выполнение программы библиотекарь.............  5

2.1.     Формат команды LIBRARY........................  5

2.2.     Типы  библиотек............................... 10

2.2.1.   Структура библиотек........................... 11

2.2.2.   Регистры клавиш символов...................... 12

2.2.3.   Библиотеки разделяемого образа................ 13

2.2.4.   Библиотеки модулей вспомогательной информации

         (библиотеки HELP)............................. 14

2.2.4.1. Создание файлов вспомогательной информации.... 15

2.2.4.2. Формат файлов вспомогательной информации...... 17

2.2.4.3. Пример текстов вспомогательной информации..... 19

2.2.4.4. Извлечение текстов вспомогательной информации. 23

2.3.     Подпрограммы программы библиотекарь........... 26

2.4.     Квалификаторы команды LIBRARY................. 27

2.4.1.   Kвалификатор /BEFORE.......................... 29

2.4.2.   Квалификатор /COMPRESS........................ 30

2.4.3.   Квалификатор /CREATE.......................... 31

2.4.4.   Квалификатор /CROSS_REFERENCE................. 33

2.4.5.   Kвалификатор /DATA............................ 34

2.4.6.   Квалификатор /DELETE.......................... 35

2.4.7.   Квалификатор /EXTRACT......................... 36

2.4.8.   Квалификатор /FULL............................ 37

2.4.9.   Квалификаторы /GLOBALS и /NOGLOBALS........... 38

2.4.10.  Квалификатор /HELP............................ 39

2.4.11.  Квалификатор /HISTORY......................... 39

2.4.12.  Квалификатор /INSERT.......................... 40

2.4.13.  Квалификаторы /LIST и /NOLIST................. 41


                          - 4 -

                      00152-01 92 16


2.4.14.  Квалификаторы /LOG и /NOLOG................... 44

2.4.15.  Квалификатор /MACRO........................... 44

2.4.16.  Квалификатор /MODULE.......................... 45

2.4.17.  Квалификаторы /NAMES и /NONAMES............... 45

2.4.18.  Квалификатор /OBJECT.......................... 47

2.4.19.  Квалификатор /ONLY............................ 47

2.4.20.  Квалификатор /OUTPUT.......................... 48

2.4.21.  Квалификатор /REMOVE.......................... 49

2.4.22.  Квалификатор /REPLACE......................... 50

2.4.23.  Квалификатор /SELECTIVE_SEARCH................ 51

2.4.24.  Квалификатор /SHARE........................... 52

2.4.25.  Квалификатор /SINCE........................... 52

2.4.26.  Квалификаторы /SQUEEZE и /NOSQUEEZE........... 53

2.4.27.  Квалификатор /TEXT............................ 53

2.4.28.  Квалификатор /WIDTH........................... 54

3.       Сообщения программы LIBRARY................... 54

Перечень ссылочных документов.......................... 55






                          - 5 -

                      00152-01 92 16








     1. Назначение и условия выполнения программы



     Программа  библиотекарь  обеспечивает   пользователям

удобный доступ к библиотекам. Библиотеки представляют  со-

бой индексированные  файлы,  которые  содержат  часто  ис-

пользуемые модули. Команда LIBRARY языка  команд  DCL  ис-

пользуется для замены и обслуживания модулей в  существую-

щих библиотеках или создания новых библиотек.



     2. Выполнение программы библиотекарь



     Программа библиотекарь с помощью команды LIBRARY соз-

дает, модифицирует и обслуживает библиотеки.

     Команда LIBRARY используется  для  обслуживания  всех

типов библиотек. По умолчанию команда  LIBRARY,  выполняет

операции замены модулей. Задавая различные квалификаторы в

команде LIBRARY можно создавать и модифицировать библиоте-

ки, вставлять, удалять, выбирать и распечатывать  записан-

ные в них модули.



     2.1. Формат команды LIBRARY



     Команда LIBRARY имеет следующий формат:

$LIBRARY/квалификатор(ы)спец_библ_файл[спец_вв_файл[,...]]

[/мODULE=имя_модуля][,[,...]]

где квалификатор(ы) - квалификаторы, задающие функции, вы-

полняемые командой LIBRARY.


                          - 6 -

                      00152-01 92 16


     Команда LIBRARY имеет следующие квалификаторы:

     1)  /BEFORE[=время];

     2)  /COMPRESS[=(подключ[,...])];

     3)  /CREATE[=(подключ[,...])];

     4)  /CROSS_REFERENCE[=(подключ[,...)]

     5)  /DATA=подключ

         по умолчанию не устанавливается;

     6)  /DELETE=(модуль[,...]);

     7)  /EXTRACT=(модуль[,...]);

     8)  /FULL;

     9)  /[NO]GLOBALS

         по умолчанию устанавливается /GLOBALS;

     10) /HELP

         по умолчанию устанавливается /OBJECT;

     11) /HISTORY;

     12) /INSERT

         по умолчанию устанавливается /REPLACE;

     13) /[NO]LIST[=спец-файла]

         по умолчанию устанавливается /NOLIST;

     14) /[NO]LOG

         по умолчанию устанавливAется /NOLOG;

     15) /MACRO

         по умолчанию устанавливается /OBJECT;

     16) /[NO]NAMES

         по умолчанию устанавливается /NONAMES;

     17) /OBJECT

         по умолчанию устанавливается /OBJECT;

     18) /ONLY=(модуль[,...])

         по умолчанию не устанавливается;

     19) /OUTPUT=спец_файла;


                          - 7 -

                      00152-01 92 16


     20) /REMOVE=(символ[,...])

         по умолчанию не устанавливается;

     21) /REPLACE

         по умолчанию устанавливается /REPLACE;

     22) /SELECTIVE_SEARCH;

     23) /SHARE

         по умолчанию устанавливается /OBJECT;

     24) /SINCE[=время];

     25) /[NO]SQUEEZE

         по умолчанию устанавливается /SQUEEZE;

     26) /TEXT

         по умолчанию устанавливается /OBJECT;

     27) /WIDTH=N;

     28) /MODULE=имя модуля

         позиционный квалификатор, который по умолчанию не

         устанавливется;

     Спец_библ_файл - имя библиотеки, которую  предполага-

ется создать или модифицировать. Если файл  библиотеки  не

задан, программа запрашивает его.

     В спецификации библиотечного файла символы  звездочка

(*) не допускаются. Если в  команде  LIBRARY  спецификация

файла или квалификатор не содержат типа файла, то по умол-

чанию для команды LIBRARY задается тип файла OLB, то  есть

задается библиотека об'ектных модулей. Пользователь  может

управлять типом библиотечного файла по умолчанию путем оп-

ределения соответствующих квалификаторов:

     1) /HELP

        тип файла по умолчанию HLB;

     2) /MACRO

        тип файла по умолчанию MLB;


                          - 8 -

                      00152-01 92 16


     3) /OBJECT

        тип файла по умолчанию OLB;

     4) /TEXT

        тип файла по умолчанию TLB;

     5) /SHARE

        тип файла по умолчанию OLB;

     Спец_вв_файл - спецификация вводного файла,  задающая

имена файлов, содержащих  модули,  которые  предполагается

поместить в заданную библиотеку.

     Если указана спецификация вводного файла, то  команда

LIBRARY либо заменяет, либо вставляет модули, содержащиеся

во вводных файлах,  в  заданную  библиотеку.  Спецификация

вводного файла необходима, когда задается либо  квалифика-

тор /REPLACE (операция  выполняется  командой  LIBRARY  по

умолчанию), либо квалификатор /INSERT. Если при  использо-

вании указанных  квалификаторов  вводной  файл  не  задан,

обслуживающая программа  библиотекарь  должна  затребовать

его с помощью команды $FILE:

     При использовании квалификатора /CREATE, обеспечиваю-

щего создание новых библиотек, спецификация вводного файла

не обязательна. Если задан квалификатор  /CREATE,  команда

LIBRARY сначала создает новую библиотеку, затем  вставляет

в эту библиотеку содержимое вводных файлов.

     При использовании квалификатора /EXTRACT,  специфика-

ция вводного файла не нужна.

     Если задано несколько  вводных  файлов,  спецификации

вводных файлов разделяются  запятыми.  Команда  LIBRARY  в

этом случае помещает в заданную библиотеку содержимое всех

вводных файлов.

     Если в спецификации файла не задан тип файла и в  це-


                          - 9 -

                      00152-01 92 16


почке команд тип файла не указан, то по умолчанию принима-

ется тип файла OBJ, то есть задается библиотека  об'ектных

модулей. Различным квалификаторам соответствуют  различные

типы файлов по умолчанию:

     1) /HELP                   HLP;

     2) /MACRO                  MAR;

     3) /OBJECT                 OBJ;

     4) /TEXT                   TXT;

     5) /SHARE                  EXE.

     Различным типам файлов, которые задаются в специфика-

циях библиотечных файлов, соответствуют определенные  типы

файла по умолчанию в спецификациях вводного файла (при ус-

ловии, что не задан квалификатор /CREATE). Например, типам

библиотечных файлов HLB, MLB, OLB, TLB соответствуют  типы

вводных файлов по  умолчанию  HLP,  MAR,  OBJ,  TXT.  Если

пользователь задает квалификатор /CREATE не для  об'ектной

библиотеки, то он должен использовать соответствующий ква-

лификатор типа файла.

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

волы обобщения, например звездочка (*);

     Имя_модуля - имя текстового модуля,  который  следует

вставить или заменить. При записи текстовых модулей в биб-

лиотеку, вводной файл должен состоять  из  одного  модуля,

исходя из этого, имя,  заданное  в  спецификации  вводного

файла, становится именем  модуля.  Если  вставляемый  файл

должен иметь имя, отличное от имени вводного файла,  нужно

присвоить имя модулю с помощью квалификатора /MODULE.

     Квалификатор /MODULE можно использовать и  для  ввода

текстовых модулей в интерактивном режиме. Если в  качестве

вводного файла задать SYS$INPUT, команда LIBRARY с  квали-


                          - 10 -

                      00152-01 92 16


фикатором /MODULE записывает введенный с терминала текст в

данный модуль библиотеки. По окончании ввода с  терминала,

следует нажать клавиши <CTRL/Z>.

     Следует помнить, что если квалификатор /MODULE  задан

в спецификации вводного файла, то предполагается  выполне-

ние операции замены или записи нового  текстового  модуля.

квалификаторы /EXTRACT, /DELETE,  /REMOVE  несовместимы  с

квалификатором /MODULE.



     2.2. Типы библиотек



     В системе имеются следующие типы библиотек:

     1) библиотеки об'ектных модулей, содержащие часто вы-

зываемые подпрограммы, которые  используются  как  вводные

файлы для программы компоновщик. Компоновщик обращается  к

библиотеке об'ектных модулей, когда  встречает  обращение,

не описанное в заданных вводных файлах. Об'ектная  библио-

тека по умолчанию имеет тип файла OLB, а тип вводных  фай-

лов - OBJ;

     2) библиотеки макроопределений, содержащие макроопре-

деления, которые используются в  качестве  вводных  файлов

для ассемблера. Ассемблер обращается к библиотекам  макро-

определений, когда встречает макрокоманду, не описанную во

вводном файле. Библиотека макроопределений имеет по  умол-

чанию тип файла MLB, а тип вводных файлов - MAR;

     3)  библиотеки  модулей  вспомогательной   информации

(библиотеки HELP), содержащие справочную информацию об ис-

пользуемых программах. Соответствующую вспомогательную ин-

формацию можно вызвать по команде HELP на уровне языка ко-

манд DCL или из программы пользователя, обратившись к  со-


                          - 11 -

                      00152-01 92 16


ответствующим подпрограммам программы библиотекарь. Библи-

отека HELP имеет по умолчанию тип файла HLB,  тип  вводных

файлов - HLP;

     4) библиотеки текстов, содержащие любые файлы  после-

довательных данных. Программы пользователей могут вызывать

тексты из  библиотек  текстов  с  помощью  соответствующих

подпрограмм  программы  библиотекарь.  Библиотека  текстов

имеет по умолчанию тип файла TLB,  тип  вводных  файлов  -

TXT;

     5) библиотеки разделяемых образов, содержащие таблицы

символов разделяемых образов, которые передаются компонов-

щику при компоновке.

     Библиотека разделяемых образов по умолчанию имеет тип

файла OLB, тип вводных файлов - ЕХЕ.

     Можно создать библиотечные файлы,  которые  не  имеют

типа файла по умолчанию. Например, можно создать об'ектную

библиотеку LIB.XXX, с помощью команды:

     $ LIB/CREATE/OBJ LIB.XXX*.OBJ

затем получить к ней доступ:

     $ LIB/LIST LIB.XXX



     2.2.1. Структура библиотек



     Каждая библиотека имеет заголовок, в котором  описано

ее содержимое. Заголовок библиотеки содержит информацию:

     1) тип библиотеки;

     2) число индексов и их расположение в файле;

     3) номер версии программы библиотекарь;

     4) время и дату создания библиотеки;

     5) время и дату последнего редактированип;


                          - 12 -

                      00152-01 92 16


     6) предварительно заданные размеры и текущие  размеры

библиотеки.

     Каждый модуль в библиотеке имеет заголовок, в котором

содержится информация о модуле, в том числе его тип, атри-

буты, дата его записи в библиотеку.

     Все библиотеки содержат индекс,  называемый  таблицей

имен модулей (MNT). Библиотеки об'ектных модулей  содержат

индекс, называемый  таблицей  глобальных  символов  (GST).

таблица содержит список глобальных символов, описанных  во

всех модулях библиотеки.

     В таблицах MNT модули каталогизируются по именам  мо-

дулей, а не по именам вводных файлов, в которых содержатся

модули.  Единственным  исключением   являются   библиотеки

текстов,  для  которых  имя  вводного  файла,  содержащего

текст, автоматически является именем модуля.



     2.2.2. Регистры клавиш символов



     Выбор регистра символа для ввода имен модулей и  имен

глобальных символов в библиотеках зависит от типа  библио-

теки.

     В библиотеках HELP имена модулей имеют вид,  соответ-

ствующий регистру, в котором  они  были  введены.  Однако,

второе имя модуля с одинаковыми буквами,  но  введенное  в

другом регистре или в разных регистрах в одной библиотеке,

заменяет предыдущее имя модуля и при  операциях  сравнения

эти  имена  воспринимаются  одинаково.   Например,   "HELP

SAMPLE", набранный в разных регистрах, относится к  одному

и тому же модулю (т.е. Обеспечивают выбор одного модуля).

     В об'ектных библиотеках имена модулей  и  имена  гло-


                          - 13 -

                      00152-01 92 16


бальных символов воспринимаются так, как они были введены.

второе аналогичное имя, введенное в символах  другого  ре-

гистра или разных регистрах, означает иное  имя.  Операции

сравнения имен требуют, чтобы имена были идентичны.

     В текстовых библиотеках и в библиотеках  макроопреде-

лений все имена модулей преобразуются в  символы  верхнего

регистра.



     2.2.3. Библиотеки разделяемого образа



     Библиотека разделяемого образа содержит таблицы  сим-

волов разделяемых образов, которые передаются компоновщику

при компоновке. Для создания библиотеки разделяемого обра-

за используется команда LIBRARY с квалификатором /SHARE:

$ LIBRARY/CREATE/SHARE MYSHARLIB MYSHRIMG1, MYSHRIMG2,

                       SHRIMG3

     Библиотека при этом специфицируется в командной стро-

ке компоновщика точно так же, как и об'ектная библиотека:

     $ LINK/MAP/FULL MYPROG, MYSHARLIB/LIBRARY

     Квалификатор /INCLUDE используется для  обязательного

включения разделяемого образа:

$ LINK/MAP/FULL MYPROG, MYSHARLIB/INCLUDE=(MYSHR1)/LIBRARY

     Для каждого разделяемого образа либо производится по-

иск  необходимого  символа,  либо  задается   квалификатор

/INCLUDE. Компоновщик просматривает  модуль  файла  образа

(по умолчанию расширение - .EXE) и обрабатывает его также,

как если бы он был указан как файл выборов.

     Если не  задан  квалификатор  /NOSYSSHR,  компоновщик

просматривает  библиотеку  SYS$LIBRARY:IMAGELIB.OLB  после

обработки    библиотек    пользователя    (по    умолчанию


                          - 14 -

                      00152-01 92 16


LNK$LYBRARY).

     Модули, найденные  в  IMAGELIB.OLB,  открываются  как

файлы со спецификацией SYS$LYBRARY:.EXE по умолчанию.

     При задании команды LYBRARY/SHARE для библиотек  раз-

деляемых образов тип файла - .OLB, а для вводных файлов  -

 .EXE.

     Библиотекарь использует GSMATCH  разделяемого  образа

как идентификатор модуля в библиотеке.

     Если GSMATCH  библиотечного  модуля  не  совпадает  с

GSMATCH, найденным в соответствующем  разделяемом  образе,

то компоновщик выдает предупреждающее  сообщение.  Предуп-

реждающее сообщение выдается и в том случае, если различны

дата и время в библиотеке и разделяемом образе.

     Примечание. Модуль, вводимый в библиотеку разделяемых

образов содержит только запись заголовка модуля  и  запись

конца модуля, которые извлекаются  из  таблицы  глобальных

символов вводного разделяемого образа.  Поэтому  извлекать

модули из библиотеки разделяемых образов не имеет смысла.



     2.2.4. Библиотеки модулей вспомогательной информации

            (библиотеки HELP)



     Вспомогательная информация позволяет пользователю по-

лучить в удобном виде информацию о программах  в  интерак-

тивном режиме работы. Вспомогательная информация  хранится

в виде модулей в библиотеках модулей  вспомогательной  ин-

формации. Обратиться к этим модулям можно с помощью  соот-

ветствующих программ.

     Библиотеки HELP создаются таким  же  образом,  как  и

библиотеки об'ектных и текстовых модулей. Они создаются по


                          - 15 -

                      00152-01 92 16


команде LIBRARY/CREATE (пункт 2.4.3.). Однако, перед  тем,

как записать модули в библиотеку HELP, необходимо  сформи-

ровать вводной файл  так,  чтобы  обслуживающая  программа

библиотекарь могла соответствующим  образом  каталогизиро-

вать его отдельные модули.



     2.2.4.1. Создание файлов вспомогательной информации



     Вводной файл, предназначенный для записи в библиотеку

HELP, обычно представляет собой текстовый файл,  подготов-

ленный с помощью редактора текстов.  Каждый  вводной  файл

может содержать один или несколько модулей вспомогательной

информации. Модуль вспомогательной информации представляет

собой набор сообщений, связанных с определенной темой  или

определенным ключом.

     Каждый модуль библиотеки HELP содержит группу связан-

ных и пронумерованных ключевых имен от ключ_1  до  ключ_9.

имя ключ_1 идентифицирует основную тему информационных со-

общений. Например, это может быть имя команды в  программе

пользователя, которая требует пояснений. Имена  от  ключ_2

до ключ_9 идентифицируют  подтемы,  связанные  с  основным

именем ключ_1, например, параметры и/или квалификаторы ко-

манды. Такая  организация  позволяет  пользователям  легко

найти необходимую  информацию,  описывающую  использование

команды, а затем дополнительно  выбрать  подтемы,  которые

дают дополнительную информацию относительно  параметров  и

квалификаторов  этой  команды.  Максимальная  длина  имени

ключ_1 определяется значением подключа KEYSIZE  квалифика-

тора /CREATE.

     Ключевые слова имеют тот формат, в котором  вводятся.


                          - 16 -

                      00152-01 92 16


однако, второе идентичное ключевое слово, введенное в сим-

волах другого или разных регистров, в той же самой библио-

теке заменяет предыдущее ключевое слово.  Например,  "HELP

SAMPLE", набранное в верхнем регистре,  и  "HELP  SAMPLE",

набранное в нижнем регистре, обеспечивают доступ к  одному

и тому же файлу.

     Имена ключей для тем и подтем HELP могут включать лю-

бые символы за исключением тех, которые используются в ка-

честве разделителей (пробел,  горизонтальная  табуляция  и

запятая) или символов обозначения комментариев  (восклица-

тельный знак).

     Имена ключей могут содержать следующие символы:

     1) буквы верхнего и нижнего регистра от а до Z;

     2) цифры (0,1,2,...9);

     3) знак денежной еденицы;

     4) символ подчеркивания (_);

     5) дефис (-).

     В именах ключей (особенно в качестве первого  символа

имени ключа) нельзя использовать символы,  имеющие  специ-

альные значения  для  стандартных  программ  (подпрограмм)

библиотекаря. В именах ключей нельзя использовать символы:

     1) звездочка (*);

     2) знак процента (%);

     3) многоточие (...);

     4) символ @;

     5) наклонная черта (/);

     6) вопросительный знак (?);

     7) левая круглая скобка (() (в качестве первого

        символа);

     8) апостроф (') и кавычки (").


                          - 17 -

                      00152-01 92 16


     Если имя ключа содержит один из  таких  символов,  то

пользователь может получить текст вспомогательной информа-

ции только устранив специальные символы или используя сим-

вол обобщения вместо такого символа. Нельзя сокращать  имя

ключа, если в нем содержится символ обобщения.



     2.2.4.2. Формат файлов вспомогательной информации



     Каждая строка ключ_1 в модуле содержит 1,  как  номер

ключа, который располагается в первой колонке. За  номером

ключа следует имя ключа. Строки  подключей  от  ключ_2  до

ключ_9 содержат номер подключа,  за  которым  следует  имя

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

отдельной команды может иметь следующий вид:

     1 имя команды

           .

           .

           .

       Текст сообщения

           .

           .

           .

     2 параметры

     Каждый исходный файл вспомогательной  информации  со-

держит несколько модулей. Обслуживающая программа  библио-

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

ключ_1, подключей и соответствующих им текстов  сообщений.

в конце модуля ставится либо другая  строка  ключ_1,  либо

запись EOF (конец файла). Формат исходного файла вспомога-

тельной информации имеет вид:


                          - 18 -

                      00152-01 92 16


     1 ключ_1  имя

            .

            .

            .

     Текст сообщения

            .

            .

            .

     2 ключ_2  имя

            .

            .

            .

     Текст сообщения

            .

            .

            .

     N ключ_N  имя

            .

            .

            .

     1 ключ_1  имя

     Программа библиотекарь записывает имя ключ_1 в табли-

цу имен модулей, т.е. имя модуля идентично  имени  ключ_1.

последовательные номера в первой  колонке  указывают,  что

строки являются строками  подключей.  Модуль  может  иметь

несколько подключей с одинаковыми номерами. Например,  мо-

дуль HELP, описывающий команду, может иметь строки ключ_2:

     2 параметры

     2 аргументы

     Комментарии можно вставлять в любое место модуля. Ес-


                          - 19 -

                      00152-01 92 16


ли программа библиотекарь встречает в первой позиции стро-

ки восклицательный знак, она считает  эту  строку  строкой

комментариев.  Строки  комментариев,  которые  следуют  за

строкой ключ_1, включаются в модуль.  Однако,  при  вызове

текстов вспомогательной информации из программы, коммента-

рии не передаются.

     Текст вспомогательных сообщений может быть любой дли-

ны. Единственным ограничением является то,  что  в  первой

колонке любой строки текста не должны стоять ни цифра,  ни

косая черта (/). Цифра в первой колонке строки  указывает,

что данная строка является строкой ключа, а наклонная чер-

та (/) в первой колонке указывает, что данная строка явля-

ется строкой квалификатора.  Если  модуль  вспомогательной

информации описывает команду, которая имеет квалификаторы,

библиотекарь при запросе HELP для  команды  выдает  список

всех квалификаторов команды.



     2.2.4.3. Пример текстов вспомогательной информации



     Пример описывает организацию вспомогательной информа-

ции для команды LIBRARY. В примере номера,  заключенные  в

круглые скобки, в текст не входят. Они  введены  лишь  для

пояснения текста.

     Пример.

     1 LIBRARY

     (1) INVOKES THE LIBRARIAN UTILITY TO  CREATE,  MODIFY

OR DESCRIBE AN OBJECT, MACRO,  HELP,  TEXT,  OR  SHAREABLE

IMAGE LIBRARY.




                          - 20 -

                      00152-01 92 16


     (2) FORMAT:

     LIBRARY LIBRARY-FILE-SPEC[INPUT-FILE-SPEC[,...]]

     (3) 2 PARAMETERS

     LIBRARY-FILE-SPEC

     (4) SPECIFIES THE NAME OF THE  LIBRARY  VOU  WANT  TO

CREATE OR MODIFY.

     (5) IF THE FILE SPECIFICATION DOES NOT INCLUDE A FILE

TYPE, THE LIBRARY COMMAND ASSUMES A DEFAULT TYPE  OF  OLB,

INDICATING AN OBJECT LIBRARY.

     INPUT-FILE-SPEC[,...]

     (6) SPECIFIES THE NAMES OF ONE OR MORE FILES THAT

CONTAIN MODULES YOU WANT TO INSERT OR REPLACE IN THE

SPECIFIED LIBRARY.

     (7) IF YOU SPECIFY MORE THAN ONE INPUT FILE, THE FILE

SPECIFICATIONS WITH COMMAS. THE INPUT-FILE-SPEC  PARAMETER

IS REQUIRED  WHEN  YOU  SPECIFY  /REPLACE  (WITCH  IS  THE

LIBRARY COMMAND'S DEFAULT OPERATION) OR /INSERT, WHICH  IS

AN OPTIONAL QUALIFIER.

     (8) WHEN YOU USE THE /CREATE QUALIFIER  TO  CREATE  A

NEW LIBRARY, THE INPUT-FILE-SPEC PARAMETER IS OPTIONAL. IF

YOU INCLUDE AN INPUT FILE SPECIFICATION WITH /CREATE,  THE

LIBRARY COMMAND FIRST CREATES  A  NEW  LIBRARY,  AND  THEN

INSERTS  THE  CONTENTS  OF  THE  INPUT  FILE(S)  INTO  THE

LIBRARY.

     (9) 2 COMMAND_QUALIFIERS

/BEFORE

     /BEFORE[=TIME]

     (10) USED IN CONJUNCTION WITH THE /LIST QUALIFIER  TO

SPECIFY  THAT  ONLY  THOSE  FILES  DATED  EARLIER  THAN  A

PARTICULAR TIME BE LISTED. YOU  CAN  SPECIFY  AN  ABSOLUTE


                          - 21 -

                      00152-01 92 16


TIME OR A COMBINATION OF ABSOLUTE AND DELTA TIMES.

     (11) IF YOU OMIT THE /BEFORE QUALIFIER,  ALL  MODULES

ARE LISTED REGARDLESS OF  DATE.  IF  YOU  SPECIFY  /BEFORE

WITHOUT A DATE OR TIME ALL FILES CREATED BEFORE TODAY  ARE

LISTED BY DEFAULT.

/COMPRESS

     /COMPRESS[=(OPTION[,...])]

     (12) RECOVERS SPACE THAT HAD BEEN OCCUPIED BY MODULES

DELETED FROM THE LIBRARY. WHEN YOU SPECIFY /COMPRESS,  THE

LIBRARY COMMAND BY DEFAULT CREATES A NEW  VERSION  OF  THE

LIBRARY IN YOUR CURRENT DEFAULT  DIRECTORY.  YOU  CAN  USE

OPTIONS  TO  THE  /COMPRESS   QUALIFIER   TO   MAKE   SOME

SPECIFICATIONS IN THE NEW VERSION OF THE LIBRARY DIFFERENT

FROM THE ORIGINAL LIBRARY.

/CREATE

     /CREATE[=(OPTION[,...])]

     (13) CREATES A NEW LIBRARY. WHEN YOU SPECIFY /CREATE,

YOU CAN OPTIONALLY SPECIFY A FILE OR A LIST OF FILES THAT

CONTAINS MODULES TO BE PLACED IN THE LIBRARY.

     (14) BY DEFAULT,  THE  LIBRARIY  COMMAND  CREATES  AN

OBJECT MODULE LIBRARY; SPECIFY /SHARE, /MACRO,  /HELP,  OR

/TEXT TO CHANGE THE DEFAULT LIBRARY TYPE.

где номера с (1) по (14) означают:

     (1) - команда LIBRARY вызывает программу библиотекюрь

для создания, изменения или описания об'ектной библиотеки,

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

библиотеки или библиотеки разделяемых образов;

     (2) - формат;

     (3) - в данной части перечисляются параметры  команды

LIBRARY;


                          - 22 -

                      00152-01 92 16


     (4) - задается имя библиотеки,  которая  должна  быть

создана или модифицирована;

     (5) - если в спецификации файла не включен тип файла,

то по умолчанию тип файла - .OLB, что  означает  об'ектную

библиотеку;

     (6) - задает имена одного или более модулей, которые

необходимо ввести в указанную библиотеку;

     (7) - если указывается несколько спецификаций вводных

файлов,  то  нужно   их   разделять   запятыми.   Параметр

спец_вв_файла требуется тогда, когда  указан  квалификатор

/REPLACE (по умолчанию  операция  команды  LIBRARY),  либо

когда указан квалификатор /INSERT, который является допол-

нительным квалификатором;

     (8) - если при создании новой библиотеки используется

квалификатор /CREATE, то параметр  спец_вв_файла  является

необязательным. Если этот параметр задан,  то  по  команде

LIBRARY сначала создается новая библиотека, а затем в  нее

включаются указанные вводные файлы;

     (9) - квалификаторы команд;

     (10) -  используется  в  сочетании  с  квалификатором

/LIST для определения только тех файлов, которые имеют да-

ту создания ранее определенного времени (они и должны быть

выведены);

     (11) - если квалификатор /BEFORE опущен, то выводятся

все модули независимо от даты их  создания.  При  указании

квалификатора /BEFORE без даты или времени,  по  умолчанию

выводятся все файлы, созданные ранее сегодняшнего дня;

     (12) - восстанавливает место, которое было занято мо-

дулями, удаленными из библиотеки. Если указан квалификатор

/COMPRESS, то создается новая библиотека с  версией  на  1


                          - 23 -

                      00152-01 92 16


больше, чем существующая библиотека;

     (13) - создание новой библиотеки. При задании  квали-

фикатора /CREATE, можно  дополнительно  указать  файл  или

список файлов, в которых содержатся модули для внесения  в

эту библиотеку.



     2.2.4.4. Извлечение текстов вспомогательной

              информации



     Тексты вспомогательной информации  можно  извлечь  из

библиотеки HELP с помощью команды HELP на уровне языка ко-

манд DCL или с помощью соответствующих  стандартных  прог-

рамм библиотекаря.

     Команда HELP по умолчанию  извлекает  текст  HELP  из

системной библиотеки HELP SYS$HELP:HELPLIB.HLB, а также из

библиотек HELP пользователя, связанных с логическими  име-

нами HLP$LIBRARY, HLP$LIBRARY_1, HLP$LIBRARY_2 и т.д. Если

текст вспомогательной информации извлекается из библиотеки

известной не по умолчанию,  то  используется  квалификатор

/LIBRARY.

     Для  извлечения  текстов  вспомогательной  информации

пользователь задает ключ_1 и любые подключи. Обслуживающая

программа библиотекарь выбирает  соответствующую  заданным

ключам вспомогательную информацию.

     Для того, чтобы выбрать  информацию,  соответствующую

ключ_1, нужно ввести команду  HELP  LIBRARY  языка  команд

DCL. В  ответ  программа  LIBRARY  выдает  вспомогательный

текст и сообщение: "ADDITIONAL INFORMATION AVAILABLE" /до-

полнительная информация/,  а  также  и  список  всех  имен

ключ_2 в модуле. Кроме  того,  программа  LIBRARY  выводит


                          - 24 -

                      00152-01 92 16


список всех квалификаторов, заданных в строке квалификато-

ров. В примере приведено сообщение, выдаваемое  после  ко-

манды HELP LIBRARY. Цифры, заключенные в круглые скобки  в

текст не входят, они введены для пояснения примера.

     Пример.

     LIBRARY

     (1) INVOKES THE LIBRARIAN UTILITY TO CREATE,  MODIFY,

OR DESCRIBE AN OBJECT, MACRO,  HELP,  TEXT,  OR  SHAREABLE

IMAGE LIBRARY.

     (2) FORMAT:

     LIBRARY LIBRARY-FILE-SPEC[INPUT-FILE-SPEC[,...]]

     (3) ADDITIONAL INFORMATION AVAILABLE:

     (4) PARAMETERS COMMAND QUALIFIERS

     /BEFORE /COMPRESS

     /CREATE

     /CROSS_REFERENCE /DATA

     /DELETE

     /EXTRACT/FULL/GLOBALS

     /HELP /HISTORY

     /INSERT /LIST/LOG

     /MACRO /NAMES/OBJECT

     /ONLY/OUTPUT

     /REMOVE /REPLACE /SELECTIVE_SEARCH /SHARE

     /SINCE /SQUEEZE /TEXT /WIDTH

     (5) POSITIONAL_QUALIFIER

     /MODULE

     (6) EXAMPLES

где (1) - библиотекарь по команде LIBRARY создает или  мо-

дифицирует об'ектную библиотеку, библиотеку макроопределе-

ний, библиотеку вспомогательной информации или  библиотеку


                          - 25 -

                      00152-01 92 16


разделяемых образов;

     (2) - формат;

     (3) - дополнительная информация;

     (4) - параметры, квалификаторы команд;

     (5) - позиционный квалификатор;

     (6) - примеры.

     Отметим, что выбрать уровень ключ_2 (параметры), вве-

дя команду HELP PARAMETERS, нельзя. Программа библиотекарь

просматривает подключи только после того, как выбраны клю-

чи более высокого уровня. Другими словами, если нужно выб-

рать сообщения  уровня  ключ_3,  необходимо  задать  соот-

ветствующие ключ_1 и ключ_2.

     Если запрашивается вспомогательная информация об  од-

ном квалификаторе, то программа библиотекарь выдает  также

информацию и о тех квалификаторах, тексты которых  связаны

между собой. Программа  библиотекарь,  обнаружив  ключевую

ветвь для запрашиваемого ключа, выводит все имена ключей в

этой ветви и выдает сообщение, соответствующее запрашивае-

мому ключу.

     Пример.

$HELP LIBRARY/HELP

LIBRARY

     /HELP

     INDICATES THAT THE LIBRARY IS A  HELP  LIBRARY.  WHEN

     YOU SPECIFY THE /HELP  QUALIFIER,  THE  LIBRARY  FILE

     TYPE  DEFAULTS,  TO  HLB  AND  THE  INPUT  FILE  TYPE

     DEFAULTS TO HLP.

     Сообщение указывает, что данная  библиотека  является

библиотекой HELP. Tип файла библиотеки по умолчанию - HLP.

     Если пользователь  пытается  выбрать  вспомогательную


                          - 26 -

                      00152-01 92 16


информацию, не имеющую соответствующего  ключа  в  таблице

имен модулей, то программа библиотекарь выдает сообщение.

     Пример.

     $HELP FIRE

     (1) SORRY, NO DOCUMENTATION ON FIRE

     (2) ADDITIONAL INFORMATION AVAILABLE:

где, (1) - по FIRE документации нет;

     (2) - имеется дополнительная информация.

     За сообщением, показанным в примере,  следует  список

имен всех модулей, зарегистрированных в таблице имен моду-

лей.

     Если строка ключ_1 задана правильно, но запрашиваемый

подключ отсутствует, программа библиотекарь выдает сообще-

ние:

     $HELP LIBRARY/FIRE

     SORRY, NO DOCUMENTATION ON LIBRARE/FIRE

     ADDITIONAL INFORMATION AVAILABLE:

     PARAMETERS COMMAND_QUALIFIERS

     /COMPRESS /BEFORE

     Сообщение содержит список всех подключей,  связаннных

с последним правильно заданным ключом.



     2.3. Подпрограммы программы библиотекарь



     Программа библиотекарь содержит подпрограммы,  выпол-

няющие следующие функции:

     - инициация библиотек;

     - открытие библиотек;

     - поиск ключа в библиотеке;

     - внесение нового ключа в библиотеку;


                          - 27 -

                      00152-01 92 16


     - выдача имен ключей;

     - удаление ключей и связанных с ними текстов;

     - чтение текста;

     - запись текста.

     Подпрограммы программы библиотекарь вызываются  стан-

дартной последовательностью команд. Подпрограммы программы

библиотекарь подробно описаны в документе [1].



     2.4. Квалификаторы команды LIBRARY



     В одной команде LIBRARY можно задавать несколько

квалификаторов с некоторыми ограничениями. Нельзя задавать

квалификаторы, определяющие противоречивые функции.

     Взаимосвязанные и совместимые квалификаторы команды

LIBRARY:

     1)  квалификатор /COMPRESS

         взаимосвязанный квалификатор /OUTPUT

         несовместимые квалификаторы: /CREATE, /EXTRACT;

     2)  квалификатор /CREATE

         взаимосвязанные  квалификаторы:  /SQUEEZE,

         /GLOBALS, /SELECTIVE_SEARCH

         несовместимые квалификаторы: /COMPRESS, /EXTRACT;

     3)  квалификатор /CROSS_REFERENCE

         взаимосвязанный квалификатор /ONLY

         несовместимые квалификаторы /EXTRACT, /LIST;

     4)  квалификатор /DATA

         взаимосвязанный квалификатор /COMPRESS

         несовместимых квалификаторов нет;

     5)  квалификатор /DELETE

         взаимосвязанных квалификаторов нет


                          - 28 -

                      00152-01 92 16


         несовместимый квалификатор /EXTRACT;

     6)  квалификатор /EXTRACT

         взаимосвязанный квалификатор /OUTPUT

         несовместимые квалификаторы: /COMPRESS, /CREATE,

         /DELETE, /INSERT, /LIST, /REMOVE, /REPLACE;

     7)  квалификатор /INSERT

         взаимосвязанные квалификаторы: /SQUEEZE,

         /GLOBALS, /SELECTIVE_SEARCH

         несовместимый квалификатор /EXTRACT;

     8)  квалификатор /LIST

         взаимосвязанные квалификаторы: /FULL, /NAMES,

         /ONLY, /HISTORY, /BEFORE, /SINCE

         несовместимые квалификаторы /EXTRACT,

         /CROSS_REFERENCE;

     9)  квалификатор /REMOVE

         взаимосвязанных квалификаторов нет

         несовместимый квалификатор /EXTRACT;

     10) квалификатор /REPLACE

         взаимосвязанные квлификаторы: /SQUEEZE, /GLOBALS,

         /SELECTIVE_SEARCH

         несовместимый квалификатор /EXTRACT;

     11) квалификатор /MODULE

         взаимосвязанный квалификатор /TEXT

         несовместимые квалификаторы: /EXTRACT, /DELETE,

         /REMOVE.

     Примечания:

     1. Квалификаторы /CREATE, /INSERT и /REPLACE  совмес-

тимы, однако,  если  задано  более  одного  квалификатора,

/CREATE имеет приоритет перед  /INSERT,  а /INSERT - перед

/REPLACE;  взаимосвязанные   квалификаторы   для   /CREATE


                          - 29 -

                      00152-01 92 16


действительны только тогда, когда задан один или несколько

вводных файлов.

     2. Квалификатор /SQUEEZE используется только для биб-

лиотек макроопределений.

     3. Квалификаторы /GLOBALS, /SELECTIVE_SEARCH,  /NAMES

используются только для библиотек об'ектных модулей.

     4. Квалификатор /MODULE используется только для  биб-

лиотек текстовых модулей.



     2.4.1. Квалификатор /BEFORE



     Формат:

     /BEFORE[=время]

где  время - время и дата.

     Квалификатор /BEFORE определяет, что будут распечаты-

ваться только те модули, которые датированы  более  ранним

временем, чем конкретно указано. Можно специфицировать аб-

солютное время или комбинацию абсолютного и дельта  време-

ни, но необходимо учитывать правила для значений  абсолют-

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

ное время, можно использовать команду HELP.

     Квалификатор /BEFORE используется вместе с квалифика-

тором /LIST. Если квалификатор /BEFORE не задан, то распе-

чатываются все модули независимо  от  даты.  Однако,  если

квалификатор /BEFORE указан без даты и времени, по умолча-

нию берутся файлы, созданные до сегодняшнего дня.

     Пример.

     $ LIBRARY/LIST/BEFORE=15-AUG-:15 MATHLIB

     По команде выводятся сведения о модулях, которые были

введены в библиотеку MATHLIB.OLB до 15 часов 15-го  авгус-


                          - 30 -

                      00152-01 92 16


та.



     2.4.2. Квалификатор /COMPRESS



     Формат:

     /COMPRESS[=(подключ[,...])]

     Квалификатор  /COMPRESS  выполняет   одну   из   двух

фукнций:

     - восстановление неиспользуемого пространства,  обра-

зовавшегося в результате удаления модулей;

     - преобразовAние формата версий библиотеки.

     Если задан квалификатор /COMPRESS, команда LIBRARY по

умолчанию создает новую библиотеку с номером версии, на  1

больше, чем номер версии существующей библиотеки. По умол-

чанию  новая  библиотека  создается  в  текущем   каталоге

пользовAтеля и имеет такое же имя, что и существующая биб-

лиотека. Альтернативное имя сжатой библиотеки  задается  с

помощью квалификатора /OUTPUT.

     Формат:

     /COMPRESS[=(подключ[,...])]

где  подключ - подключи, позволяющие увеличить или  умень-

шить размер библиотеки, а  также  подавлять  заданные  для

библиотеки параметры:

     1) BLOCKS:N - задает число блоков  (по  512  байтов),

распределяемых для библиотеки;

     2) GLOBALS:N - задает максимальное  число  глобальных

символов, содержащихся в библиотеке (только для  библиотек

об'ектных модулей);

     3) HISTORY:N - определяет максимальное число редакций

записей, которые может содержать библиотека;


                          - 31 -

                      00152-01 92 16


     4) KEEP - копирует записи из истории коррекции библи-

отеки и некоторые дополнительные данные пользователя в за-

головке модуля в компактную библиотеку;

     5) MODULES:N - задает максимальное число модулей  или

макроопределений, которые  могут  содержаться  в  заданной

библиотеке;

     6) KEYSIZE:N - определяет  максимальную  длину  имени

модуля и имени глобального символа;

     7) VERSION:N - определяет, что библиотека записана  в

формате соответственно версии N.

     Если задается несколько подключей, их нужно разделять

запятыми и весь список заключать в круглые скобки.

     Пример.

$ LIBRARY/COMPRESS=(KEYSIZE:40, MODULES:80)/TEXT SOURCE

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

ки SOURCE.LIB. Новая версия библиотеки может содержать  до

80-ти модулей; максимальное число  имен  модулей  в  новой

версии равна 40.



     2.4.3. Квалификатор /CREATE



     Квалификатор /CREATE обеспечивает создание новой биб-

лиотеки. Если задан  квалификатор  /CREATE,  можно  задать

файл или список файлов, содержащих модули, которые  должны

быть размещены в библиотеке.

     По  умолчанию  команда  LIBRARY  создает   библиотеку

об'ектных модулей. Для того, чтобы создать библиотеку мак-

роопределений, библиотеку текстовых модулей или библиотеку

вспомогательной информации, необходимо задать соответству-

ющий квалификатор: /MACRO, /HELP или /TEXT.


                          - 32 -

                      00152-01 92 16


     Формат:

     /CREATE[=(подключ[,...])]

где  подключ - подключи,  позволяющие  задавать  параметры

библиотеки:

     1) BLOCKS:N задает число блоков (по 512 байтов),  ко-

торые должны быть распределены для библиотеки. По  умолча-

нию для новой библиотеки выделяется 100 блоков;

     2) GLOBALS:N  задает  максимальное  число  глобальных

символов, которые первоначально могут содержаться в библи-

отеке. Максимальное число глобальных символов для  библио-

теки об'ектных модулей по умолчанию равно 512. (библиотеки

макроопределений, об'ектных модулей и вспомогательной  ин-

формации не содержат оглавления глобальных символов,  поэ-

тому по умолчанию максимальное число  глобальных  символов

для этих библиотек задается равным 0);

     3) HISTORY:N определяет  максимальное  число  записей

истории изменений библиотеки, которые может содержать биб-

лиотека. Максимально по умолчанию принимается 20 записей;

     4) KEYSIZE:N задает максимальную длину имен модулей и

глобальных символов. Максимальная длина таких  имен  может

быть равна 128 символам. По умолчанию команда LIBRARY  за-

дает длину глобальных символов и имен, об'ектных модулей и

модулей макроопределений в 31 символ, длину имени  модулей

библиотеки HELP в 15  символов  и  длину  имен  модулей  в

текстовых библиотеках в 39 символов. Задавая значение дли-

ны ключа, следует помнить, что для макроассемблера  и  для

компоновщика не допустимы имена модулей и имена глобальных

символов длиннее 31 символа;

     5) MODULES:N задает максимальное число  модулей,  со-

держащихся в библиотеке. По умолчанию команда LIBRARY  за-


                          - 33 -

                      00152-01 92 16


дает максимальное число модулей для библиотек всех типов в

128 модулей;

     6) VERSION:N создает библиотеку в формате  библиотеки

указанной версии N.

     Если задаются несколько подключей, их следует  разде-

лять запятыми и весь список заключать в круглые скобки.

     Примеры:

     1. $ LIBRARY/CREATE TESTLIB ERRMSG, STARTUP

     По команде создается библиотека об'ектных  модулей  с

именем TESTLIB.OLB, куда включаются  модули  ERRMSG.OBJ  и

STARTUP.OBJ.

     2. $ LIBRARY/MACRO/CREATE=(BLOCKS:40,MODULES:100)

                                            MYMAC TEMP

        $MACRO MYMAC/LIBRARY, CUGNUS/OBJECT

     По команде создается  библиотека  макроопределений  с

именем MYMAC.MLB из макроопределений в файле TEMP.MAR. Но-

вой библиотеке выделено 40 блоков и в ней можно разместить

100 модулей.



     2.4.4. Квалификатор /CROSS_REFERENCE



     Квалификатор /CROSS_REFERENCE запрашивает листинг пе-

рекрестных ссылок для библиотеки об'ектных модулей.

     Если данный квалификатор опущен, листинг перекрестных

ссылок не создается.  Если  квалификатор  /CROSS_REFERENCE

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

рекрестных ссылок, который содержит только имена и  значе-

ния символов. В этом случае  листинг  перекрестных  ссылок

создается в текущем каталоге пользователя и имеет такое же

имя файла как у библиотеки, и тип файла - .LIS.


                          - 34 -

                      00152-01 92 16


     Формат:

     /CROSS_REFERENCE[=(подключ[,...])]

где  подключ - один или несколько следующих подключей:

     - ALL указывает, что необходимо вывести все типы  пе-

рекрестных ссылок;

     - MODULE указывает, что необходим листинг, содержащий

ссылки на глобальные символы  в  модуле  и  описания  гло-

бальных символов;

     - NONE указывает, что листинг перекрестных ссылок  не

запрашивается;

     - SYMBOL задает листинг перекрестных ссылок по именам

символов;

     - VALUE задает листинг перекрестных  ссылок  символов

по значениям символов.

     Если задаются одновременно  несколько  подключей,  их

следует разделять запятыми и весь список заключать в круг-

лые скобки.

     Пример.

     $ LIBRARY/CROSS_REFERENCE=ALL/OUTPUT=SYS$OUTPUT

LIBRAR

     По этой команде на терминале распечатывается  листинг

перекрестных ссылок.



     2.4.5. Квалификатор /DATA



     Квалификатор /DATA дает возможность записи библиотеки

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

формате уплотненных данных перевести в обычный формат.

     По этому квалификатору по умолчанию в текущем катало-

ге пользователя создается новая библиотека, имеющая  такое


                          - 35 -

                      00152-01 92 16


же имя, как и существующая библиотека. Тип файла библиоте-

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

емой библиотеки. Если нужно задать библиотеке  новое  имя,

то можно использовать квалификатор /OUTPUT.

     Формат:

     /DATA=подключ

где  подключ - один из следующих подключей:

     - REDUCE указывает, что данные в библиотеке записыва-

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

требуется меньший об'ем дисковой памяти, но доступ к ней в

общем случае выполняется медленнее;

     - EXPAND указывает, что данные в библиотеке записыва-

ются в обычном формате; этот квалификатор применяется  для

изменения формата уплотненных данных библиотеки в  обычный

формат.

     При использовании квалификатора /DATA с любым подклю-

чом программа библиотекарь, как и при использовании квали-

фикатора /COMPRESS, восстанавливает  место  в  библиотеке,

занятое убранными ранее модулями.

     Пример.

     $ LIBRARY/TEXT/DATA=REDUCE TEXTLIB

     По команде данные записываются в библиотеку TEXTLIB в

формате сжатых данных.



     2.4.6. Квалификатор /DELETE



     Формат:

     /DELETE=(модуль[,...])

где  модуль - имя удаляемого модуля.

     Квалификатор /DELETE обеспечивает удаление одного или


                          - 36 -

                      00152-01 92 16


нескольких модулей из библиотеки. Имена удаляемых  модулей

должны быть заданы. Если задаются  несколько  модулей,  их

имена разделяются запятыми и весь список имен  заключается

в круглые скобки.

     В спецификации модуля допускается использование  сим-

волов обобщения.

     Если в одной команде  LIBRARY  задаются  квалификатор

/LOG и квалификатор /DELETE, выдается сообщение:

     %LIBRAR-S-DELETED,  MODULE  имя_модуля  DELETED  FROM

имя_библиотеки

     Сообщение означает, что  заданный  модуль  удален  из

указанной библиотеки.



     Пример.

     $ LIBRARY/DELETE=FREEZE/LOG THAW

     По команде модуль FREEZE удаляется из об'ектной  биб-

лиотеки THAW и об этом выдается соответствующее сообщение.



     2.4.7. Квалификатор /EXTRACT



     Формат:

     /EXTRACT=(MOдуль[,...])

где  модуль - имя модуля, копия которого заводится в новом

файле.

     Квалификатор /EXTRACT копирует один или несколько мо-

дулей из существующей библиотеки в новый файл. Если  зада-

ются несколько модулей, список имен заключается в  скобки,

а сами имена разделяются запятыми.

     В спецификации модуля допускается использование  сим-

волов обобщения - (*).


                          - 37 -

                      00152-01 92 16


     Если вместе с квалификатором /EXTRACT задан  квалифи-

катор /OUTPUT, команда LIBRARY записывает выводные  данные

в файл, заданный квалификатором /OUTPUT. Если квалификатор

/OUTPUT не задан вместе с квалификатором /EXTRACT, команда

LIBRARY записывает выводной  файл  в  файл,  имеющий  имя,

идентичное имени заданной библиотеки, а тип файла -  .OBJ,

.MAR, .HLP или .TXT, в зависимости от типа библиотеки.

     Пример.

     $ LIBR/EXTR=(ALLOCATE,APPEND)/OUT=MYHELP

     SYS$HELP:HELPLIB.HLB

     По команде из библиотеки HELPLIB.HLB выбираются моду-

ли ALLOCATE и APPEND и выводятся в файл MYHELP.HLP,  нахо-

дящийся по умолчанию в текущем каталоге пользователя.



     2.4.8. Квалификатор /FULL



     Формат:

     /FULL

     Квалификатор /FULL запрашивает полное описание модуля

и таблицы имен модулей. Если квалификатор  /FULL  задается

вместе с квалификатором /LIST, команда выводит список всех

модулей библиотеки в следующем формате:

     (1)            (2)                (3)       (4)

     MODULE-NAME[IDENT NN]INSERTED DD-MMM-YYY HH:MM:SS

     (5)

[N SYMBOLS]

где (1) - имя модуля;

    (2) - идентификационный номер;

    (3) - дата;

    (4) - время;


                          - 38 -

                      00152-01 92 16


    (5) - количество символов.

     Идентификационный номер и  число  символов  выводятся

только для библиотек об'ектных модулей.

     Если для указанной библиотеки велась запись  истории

изменений, то задав комбинацию квалификаторов

/LIST/FULL/HISTORY можно вывести имена модулей из записей

истории изменений.

     Пример.

     $ LIBRARY/LIST=MYMAC.LIS/FULL MYMAC.MLB

     По команде в файл MYMAC выводится  полная  распечатка

имен модулей с соответствующими описаниями библиотеки мак-

роопределений MYMAC.



     2.4.9. Квалификаторы /GLOBALS  и /NOGLOBALS



     Формат:

     /GLOBALS

     /NOGLOBALS

     Квалификаторы /GLOBALS и /NOGLOBALS используются  при

работе с библиотеками  об'ектных  модулей.  Они  управляют

включением имен глобальных символов в  таблицу  глобальных

символов.

     По умолчанию  команда  LIBRARY  помещает  имена  гло-

бальных символов в таблицу имен глобальных символов.  Ква-

лификатор  /NOGLOBALS  используется,  когда  не  требуется

включать имена глобальных символов в библиотеку глобальных

символов.

     Пример.

     $ LIBRARY/INSERT/NOGLOBALS TOOLS SPELL

     По  команде  в  библиотеку  TOOLS   включается   файл


                          - 39 -

                      00152-01 92 16


SPELL.OBJ, но глобальные символы в этом модуле не  включа-

ются в таблицу глобальных символов.



     2.4.10. Квалификатор /HELP



     Формат:

     /HELP

     Квалификатор /HELP указывет, что заданная  библиотека

является библиотекой вспомогательной информации.

     При использовании квалификатора /HELP тип  файла  за-

данной библиотеки по умолчанию - .HLB,тип  вводного  файла

по умолчанию - .HLP.

     Пример.

     $ LIBRARY/HELP/CREATE ERRMSG EDITERRS

     По этой команде создается библиотека  вспомогательной

информации ERRMSG.HLB и текст из файла EDITERRS включается

в эту библиотеку.



     2.4.11. Квалификатор /HISTORY



     Формат:

     /HISTORY

     Квалификатор /HISTORY используется вместе с  квалифи-

катором /LIST. По квалификатору /HISTORY  выводятся  заго-

ловки записей истории изменения (если библиотека  содержит

такие записи) в виде:

     (1)        (2)      (3)            (4)      (5)

     USERNAME OPERATION N MODULES ON DD-MM-YYY NN:MM:SS

где  (1) - имя пользователя;

     (2) - операция (замена, добавление или удаления),


                          - 40 -

                      00152-01 92 16


           произведенная с модулями;

     (3) - количество модулей;

     (4) - дата;

     (5) - время.

     При использовании квалификатора /HISTORY с квалифика-

торами /LIST/FULL выводятся заголовки истории изменения  и

имена измененных модулей.

     Пример.

     $ LIBRARY/LIST/HISTORY/MACRO SETUP

     По команде выводятся заголовки записей истории  изме-

нения библиотеки макроопределений SETUP.MLB.



     2.4.12. Квалификатор  /INSERT



     Формат:

     /INSERT

     Квалификатор /INSERT добавляет содержимое одного  или

нескольких файлов в существующую библиотеку. Если  вводной

файл  содержит  об'единенные  об'ектные  модули,   команда

LIBRARY создает для каждого об'ектного  модуля  файла  от-

дельную запись. Каждая запись таблицы имен  модулей  соот-

ветствует имени отдельного модуля. Если вводные файлы типа

.HLP  и  .MAC,  содержат  несколько  модулей,  то  команда

LIBRARY создает для каждого модуля отдельные записи в таб-

лице имен модулей, в соответствии с именами,  заданными  в

директивах MACRO или именах ключ-1 команды HELP.

     В библиотеках текстовых модулей в отличии от  библио-

тек об'ектных модулей, библиотек макроопределений и библи-

отек HELP, вводные файлы содержат  записи  неопределенного

содержания, поэтому, программа библиотекарь каталогизирует


                          - 41 -

                      00152-01 92 16


весь вводной файл, как один модуль, используя спецификацию

вводного файла в качестве имени модуля. Присвоить вставля-

емому модулю другое  имя  можно  с  помощью  квалификатора

/MODULE.

     Команда LIBRARY, записывая модули в существующую биб-

лиотеку, проверяет, зарегистрирован ли модуль в  библиоте-

ке. Если имя модуля или имя глобального символа уже  заре-

гистрировано в библиотеке, программа  библиотекарь  выдает

сообщение об ошибке, при этом модуль или символ в  библио-

теку не заносится.

     Чтобы вставить или заменить модуль, имя которого  за-

регистрировано в библиотеке, следует использовать квалифи-

катор /REPLACE (задается по умолчанию).

     Пример.

     $ LIBRARY/INSERT TESTLIB SCANLINE

     $ LINK TERMTEST, TESTLIB/LIBRARY

     По этой команде в библиотеку TESTLIB.OLB  добавляется

модуль SCANLINE.OBJ. Затем эта библиотека становится ввод-

ным файлом для программы компоновщик.



     2.4.13. Квалификаторы /LIST и /NOLIST



     Формат:

     /LIST [=спец_файла]

     /NOLIST

где  спец_файла - спецификация выводного файла.

     Квалификаторы /LIST, /NOLIST управляют  выдачей  лис-

тинга, содержащего информацию о содержании библиотеки.  По

умолчанию листинг не выдается. Если квалификатор LIST  за-

дан без спецификации файла, команда LIBRARY  выводит  файл


                          - 42 -

                      00152-01 92 16


на устройство SYS$OUTPUT. Если спецификация файла  задана,

но не содержит типа файла, команда  LIBRARY  по  умолчанию

задает тип файла .LIS.

     Если вместе с квалификатором /LIST заданы другие ква-

лификаторы, которые обеспечивают выполнение дополнительных

операций, команда LIBRARY выводит листинг после выполнения

всех операций, то  есть  листинг  соответствует  состоянию

библиотеки после выполнения всех изменений.

     Если задан квалификатор  /LIST,  команда  LIBRARY  по

умолчанию выдает информацию о состоянии заданной библиоте-

ки в следующем виде:

(1) DIRECTORY OF OBJECT LIBRARY DM0:[LIBRAR]LIBRAR.OLB;1

ON 14-JUN-1984 10:08:28

(2) CREATION DATE: 12-JUN-1984 19:40:36

(3) REVISION DATE: 14-JUN-1984 16:04:58

(4) NUMBER OF MODULES: 15

(5) OTHER ENTRIES: 75

(6) RECOVERABLE DELETED BLOCKS: 15

(7) MAX.UPDATE HISTORY RECORDS: 10

(8) CREATOR: LIBRARIAN V03.00

(9) LIBRARY FORMAT: 3.0

(10) MAX.KEY LENTH: 31

(11) PREALLOCATED INDEX BLOCKS: 35

(12) TOTAL INDEX BLOCKS USED: 12

(13) UPDATE HISTORY RECORDS: 5



где  (1)  - спецификация библиотечного файла;

     (2)  - дата и время создания библиотеки;

     (3)  - дата и время последнего внесения изменений;

     (4)  - количество модулей;


                          - 43 -

                      00152-01 92 16


     (5)  - другие записи;

     (6)  - количество восстановимых удаленных блоков;

     (7)  - максимальное число записей в истории коррекции

            библиотеки;

     (8)  - создатель библиотеки;

     (9)  - формат библиотеки;

     (10) - максимальная длина ключа;

     (11) - количество предварительно  распределенных  ин-

            дексных блоков;

     (12) - общее количество используемых  индексных  бло-

            ков;

     (13) - число записей в истории коррекции библиотеки.

     Примеры:

     1. $ LIBRARY/LIST=MYMAC.LIS/FULL MYMAC.MLB

     По этой команде библиотекарь запрашивает полную  рас-

печатку информации о  библиотеке  макроопределений  MYMAC.

выводные данные передаются в файл MYMAC.LIS.

     2. $ LIBRARY/LIST/NAMES/ONLY=$ONE/WIDTH=80 SYMBOLIB

     По этой команде библиотекарь запрашивает полную  рас-

печатку информации только  о  модуле  $ONE  из  библиотеки

об'ектных модулей SYMBOLIB.OLB. Квалификатор /WIDTH указы-

вает, что при выводе глобальных символов длина строки при-

нимается равной 80 символам.

     3. $ LIBRARY/INSERT/LIST ALLOBJECTS *

     По этой команде все  об'ектные  модули  из  об'ектных

файлов  в  текущем  каталоге  добавляются   в   библиотеку

ALLOBJECTS.OLB. Если имена вводимых  модулей  совпадают  с

существующими именами в библиотеке, то  имя  существующего

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

водится на устройство SYS$OUTPUT.


                          - 44 -

                      00152-01 92 16




     2.4.14. Квалификаторы /LOG и /NOLOG



     Формат:

     /LOG

     /NOLOG

     Квалификаторы /LOG и /NOLOG определяют, должна ли вы-

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

операции. Если задан квалификатор  /LOG,  команда  LIBRARY

после выполнения операции выводит на терминал имя  модуля,

выполненную операцию и спецификацию  библиотечного  файла.

другие способы использования квалификатора /LOG  представ-

лены в описании квалификаторов /DELETE и /REPLАCE.

     Пример.

$LIBRARY/REMOVE=(LIB_EXTRCT_MODS,LIB_INPUT_MAC)/LOG LIBRAR

     По этой команде из  об'ектной  библиотеки  LIBRAR.OLB

удаляются     глобальные     символы      LIB_EXTRCT_MODS,

LIB_INPUT_MAC и удаление этих символов подтверждается  со-

общениями.



     2.4.15. Квалификатор /MACRO



     Формат:

     /MACRO

     Квалификатор /MACRO указывает, что заданная библиоте-

ка является библиотекой макроопределений. Если данный ква-

лификатор задан, по умолчанию тип файла библиотеки - .MLB,

а тип вводного файла - .MAR.

     Пример.

     $ LIBRARY/MACRO/INSERT MONTHS APRIL


                          - 45 -

                      00152-01 92 16


     По этой команде модули из файла APRIL.MAR добавляются

в библиотеку макроопределений MONHHS.MLB.



     2.4.16. Квалификатор /MODULE



     Формат:

     /MODULE=имя_модуля

где  имя модуля - имя текстового модуля, вводимого в  диа-

логовом режиме, или имя добавляемого модуля, если его  имя

должно отличаться от имени вводного файла.

     Для ввода модуля в диалоговом режиме в команде вместо

вводного файла задается логическое имя SYS$INPUT и  квали-

фикатор /MODULE, с указанием имени модуля. В  этом  случае

набранный пользователем текст с клавиатуры терминала будет

вводиться в указанный модуль. Для окончания ввода с клави-

атуры терминала следует нажать CTRL/Z.

     Квалификатор /MODULE является квалификатором вводного

файла и поэтому несовместим  с  квалификаторами  /EXTRACT,

/DELETE, /REMOVE, которые выводят или удаляют модули.

     Пример.

     $ LIBRARY/INSERT/TEXT TSTRING SYS$INPUT/MODULE=TEXT1

     По этой команде пользователь с  клавиатуры  терминала

вводит текстовый модуль под именем  TEXT1,  который  будет

помещен в библиотеку TSTRING.TLB.



     2.4.17. Квалификаторы /NAMES и /NONAMES



     Формат:

     /NAMES

     /NONAMES


                          - 46 -

                      00152-01 92 16


     Квалификаторы /NAMES и /NONAMES используются вместе с

квалификатором /LIST. Если квалификатор  /LIST  задан  при

работе с библиотекой об'ектных модулей, с помощью квалифи-

каторов /NAMES и /NONAMES можно задать, должна ли  команда

LIBRARY выводить имена всех глобальных символов из таблицы

глобальных символов, а также имена модулей из таблицы имен

модулей.

     По умолчанию задается квалификатор /NONAMES,  который

запрещает вывод имен глобальных символов. Если задан  ква-

лификатор /NAMES, каждая запись имени модуля  выводится  в

формате:

     Модуль     имя модуля

     1          1          1         1

     .          .          .         .

     .          .          .         .

     .          .          .         .

где 1 - глобальный символ.

     По квалификатору /NAMES для библиотек  макроопределе-

ний, библиотек модулей вспомогательной информации  HELP  и

библиотек текстовых модулей имена символов не выводятся.

     Пример.

     $ LIBRARY/LIST/NAMES/ONLY=$ONE/WIDTH=80 SYMBOLIB

     По этой команде распечатывается полная  информация  о

модуле $ONE из  библиотеки  SYMBOLIB.OLB,  распечатываются

глобальные символы этого модуля. Длина строк при этом рав-

на 80 символам.




                          - 47 -

                      00152-01 92 16


     2.4.18. Квалификатор /OBJECT



     Формат:

     /OBJECT

     Квалификатор /OBJECT указывет, что заданная библиоте-

ка является библиотекой  об'ектных  модулей.  Квалификатор

/оBJECT задается по умолчанию. В  этом  случае  тип  файла

библиотеки - .OLB, тип вводного файла - .OBJ.

     Пример.

     $ LIBRARY/OBJECT/INSERT MONTHS APRIL

     По этой команде модули из файла APRIL.OBJ  включаются

в об'ектную библиотеку MONTHS.OLB. Квалификатор /OBJECT не

обязателен; он устанавливается по умолчанию.



     2.4.19. Квалификатор /ONLY



     Формат:

     /ONLY=(модуль[,...])

где  модуль - имя модуля.

     Если в команде задан квалификатор /ONLY, то программа

библиотекарь работает только с теми модулями, которые ука-

заны в квалификаторе /ONLY. Если в квалификаторе /ONLY за-

дано несколько модулей, то их имена должны быть  разделены

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

лые скобки.

     В спецификации имени модуля допускается использование

символов обобщения.




                          - 48 -

                      00152-01 92 16


     2.4.20. Квалификатор /OUTPUT



     Формат:

     /OUTPUT=спец_файл

где  спец_файл - спецификация выводного файла.

     Квалификатор /OUTPUT  задает  спецификацию  выводного

файла, когда указаны  квалификаторы  /EXTRACT,  /COMPRESS,

/сROSS_REFERENCE и /DATа.

     Если в команде задан квалификатор /EXTRACT,  выводной

файл содержит выбранные из библиотеки модули.  Если  задан

квалификатор /COMPRESS, выводной файл содержит сжатую биб-

лиотеку. Если задан квалификатор /CROSS_REFERENCE,  вывод-

ной файл содержит листинг перекрестных ссылок. Если  задан

квалификатор /DATA, выводной файл  содержит  библиотеку  в

формате уплотненных данных или библиотеку обычного  форма-

та.

     В спецификации файла использование символа  обобщения

не допускается.

     Если в спецификации фAйла опущен тип  файла,  то  тип

файла по умолчанию зависит от используемых  квалификаторов

функций и в некоторых случаях от квалификаторов типов биб-

лиотек.   Например,   при   использовании    квалификатора

/COMPRESS или /DATA различным квалификаторам типов  библи-

отеки соответствуют различные типы файлов по умолчанию:

     1) /HELP    -    HLB ;

     2) /MACRO   -    MLB ;

     3) /OBJECT  -    OLB ;

     4) /TEXT    -    TLB ;

     5) /SHARE   -    OLB .

     При  использовании  квалификатора  /EXTRACT  тем   же


                          - 49 -

                      00152-01 92 16


квалификаторам типов библиотек  соответствуют  уже  другие

типы файла по умолчанию:

     1) /HELP    -    HLP ;

     2) /MACRO   -    MAR ;

     3) /OBJECT  -    OBJ ;

     4) /TEXT    -    TXT ;

     5) /SHARE   -    EXE .

     При использовании квалификатора /CROSS_REFERENCE  тип

файла по умолчанию  .LIS.

     Примеры:

1. $ LIBR/EXTR=(ALLOCATE, APPEND)/OUT=MYHELP SYS$HELP.HLВ

     По этой команде модули ALLOCATE и APPEND извлекают из

библиотеки HELPLIB.HLB и выводятся в файл MYHELP.HLP.

2. $ LIBRARY/CROSS_REFERENCE=ALL/OUTPUT=SYS$OUTPUT LIBRAR

     По этой команде  программа  библиотекарь  запрашивает

листинг перекрестных ссылок библиотеки LIBRAR.OLB. Листинг

выводится на терминал.



     2.4.21. Kвалификатор /REMOVE



     Формат:

     /REMOVE=(символ[,...])

где  символ - глобальный символ.

     Квалификатор /REMOVE позволяет удалять записи из таб-

лицы глобальных символов библиотеки об'ектных модулей. Ес-

ли задается несколько символов, их следует разделять запя-

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

кации файла допускается использование символа обобщения.

     Если требуется вывести на  терминал  имена  удаленных

глобальных символов, следует задать в команде квалификатор


                          - 50 -

                      00152-01 92 16


/LOG.



     Пример.

$ LIBRARY/REMOVE=(LIB_EXRCT_MODS,LIB_INPUT_MAC)/LOG LIBRAR

     По этой команде глобальные символы LIB_EXTRCT_MODS  и

LIB_INPUT_MAC   удаляются    из    об'ектной    библиотеки

LIBRAR.OLB. По квалификатору /LOG распечатываются  удален-

ные глобальные символы.



     2.4.22. Квалификатор /REPLАCE



     Формат:

     /REPLACE

     Квалификатор /REPLACE позволяет заменять модули в су-

ществующих библиотеках модулями, заданными во вводных фай-

лах. Сначала команда LIBRARY удаляет  все  существующие  в

библиотеке модули, которые имеют те же имена, что и  моду-

ли, заданные во вводном файле. Затем новые версии  модулей

вставляются в библиотеку. Эта операция выполняется  коман-

дой LIBRARY по умолчанию. Если  параметры  вводного  файла

заданы, команда LIBRARY либо заменяет, либо вставляет  со-

держимое вводного файла в библиотеку. Если вместе с квали-

фикатором  /REPLACE  задан  квалификатор   /LOG,   команда

LIBRARY выдает сообщения:

     %LIBRAR-S-REPLACED, MODULE  имя  модуля  REPLACED  IN

     LIBRARY-FILE-SPEC

     %LIBRAR-S-INSERTED, MODULE  имя  модуля  INSERTED  IN

     LIBRARY-FILE-SPEC

     Сообщения означают, что заданный модуль  в  указанной

библиотеке заменен. Вместо него в библиотеку вставлен  но-


                          - 51 -

                      00152-01 92 16


вый модуль под тем же именем.

     Пример.

     $ LIBRARY/REPLACE/HELP HELPLIB NEWTEXT

     По этой команде модули из файла NEWTEXT.HLP включают-

ся в библиотеку HELPLIB.HLB, при этом существующие  модули

с такими же именами удаляются.



     2.4.23. Квалификатор /SELECTIVE_SEARCH



     Формат:

     /SELECTIVE_SEARCH

     Квалификатор  /SELECTIVE_SEARCH  определяет   вводной

файл, вставляемый в библиотеку, как  файл,  который  может

потребоваться  компоновщику.   Если   задан   квалификатор

/SELECTIVE_SEARCH и библиотека задана,  как  вводной  файл

компоновщика, то будет проводиться избирательный поиск за-

данных модулей. В таблицу символов выводного файла  образа

включаются только глобальные символы из указанных модулей,

на которые имеются ссылки в других модулях.

     Пример.

     $ LIBRARY/SELECTIVE_SEARCH/INSERT MATHLIB TRIG

     По этой команде модули в файле TRIG.OBJ включаются  в

библиотеку MATHLIB.OLB. Избирательный поиск введенных  мо-

дулей  выполняется   в   том   случае,   если   библиотека

MATHLIB.OLB определяется в  качестве  вводного  файла  для

программы компоновщик.




                          - 52 -

                      00152-01 92 16


     2.4.24. Квалификатор /SHARE



     Формат:

     /SHARE

     Квалификатор /SHARE   означает, что библиотека  явля-

ется библиотекой разделяемого образа. Для библиотеки  таб-

лицы символов разделяемого образа тип  файла .OLB,  а  для

вводных файлов - .EXE.

     Пример.

     $ LIBRARY/SHARE/CREATE SHARLIB

     По этой команде создается библиотека разделяемого об-

раза SHARLIB.OLB.



     2.4.25. Квалификатор /SINCE



     Формат:

     /SINCE[=время]

где  время - дата и время.

     Квалификатор /SINCE   означает, что будут  напечатаны

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

аргументе. В аргументе можно задать абсолютное время.

     Формат абсолютного времени  можно  узнать  с  помощью

KOMAнды  HELP программы DCL.

     Квалификатор /SINCE используется вместе с  квалифика-

тором /LIST. По умолчанию выдаются все модули. Если квали-

фикатор /SINCE указан, но без значения даты и времени, вы-

даются файлы, созданные сегодня.

     Пример.

     $ LIBRARY/HELP/LIST/SINCE=:12 ERRMSG

     По этой команде  распечатывается  информация  относи-


                          - 53 -

                      00152-01 92 16


тельно модулей HELP, добавленных к библиотеке ERRMSG.HLB с

12 часов текущего дня.



     2.4.26. Квалификаторы /SQUEEZE и /NOSQUEEZE



     Формат:

     /SQUEEZE

     /NOSQUEEZE

     Квалификаторы /SQUEEZE и /NOSQUEEZE указывают, следу-

ет ли уплотнять отдельные макроопределения перед  добавле-

нием их в библиотеку макроопределений. Если задAн квалифи-

катор /SQUEEZE (он задается и по  умолчанию),  из  каждого

макроопределения, перед размещением в библиотекE, удаляют-

ся комментарии, концевые пробелы и концевая табуляция.

     Использование квалификатора /SQUEEZE вместе с  квали-

фикаторами /CREATE, /INSERT и /REPLACE  позволяет  сэконо-

мить место в библиотеке макроопределений.  Если  необходим

полный текст макроопределения, следует задать квалификатор

/NOSQUEEZE.

     Пример.

     $ LIBRARY/MACRO/NOSQUEEZE/INSERT MYMACS MAMACS

     По этой команде из файла MYMACS.MAR добавляются моду-

ли в библиотеку MаMACS.MLB,  при  этом  концевые  пробелы,

концевые табуляции и комментарии не убираются.



     2.4.27. Квалификатор /TEXT



     Формат:

     /теXT

     Квалификатор /TEXT указывает, что заданная библиотека


                          - 54 -

                      00152-01 92 16


является библиотекой текстовых модулей. При  использовании

квалификаторA /TEXT тип файла библиотеки  по  умолчанию  -

.TLB, тип вводного файла по умолчанию - .TXT.

     Пример.

     $LIBRARY/INSERT/TEXT TSTRING SYS$INPUT/MODULE=TEXT1

     По этой команде модуль TEXT1 добавляется в  текстовую

библиотеку TSTRING.TLB. Ввод производится с терминала.



     2.4.28. Квалификатор /WIDTH



     Формат:

     /WIDTH=N

где  N - положительное целое число.

     Квалификатор /WIDTH=N задает ширину экрана (в  симво-

лах) для вывода имен глобальных символов. Данный  квалифи-

катор, заданный вместе с квалификатором /NAMES,  ограничи-

вает длину строки при выводе информации. По умолчанию  ши-

рина экрана принимается равной длине строки устройства вы-

вода. Максимальная ширина - 132 символа.

     Пример.

     $ LIBRARY/LIST/WIDTH=80 SYMBOLIB

     По этой команде  производится  распечатка  библиотеки

SYMBOLIB.OLB. Ширина экрана принимается равной  80  симво-

лам.



     3. Сообщения программы LIBRARY



     Сообщения об ошибках, выдаваемые программой библиоте-

карь, пояснения к ним и предлагаемые действия пользователя

даны в документах [2],[3],[4].


                          - 55 -

                      00152-01 92 16


           Перечень ссылочных документов



     1. Операционная система МОС ВП. Подсистема системного

сервиса. Интерфейсные программы. Руководство  программиста

00152-01 33 02

     2. Операционная система МОС ВП.  Подсистема  управле-

ния. Сообщения системы и действия по восстановлению. Спра-

вочный материал 00152-01 97 02-1

     3. Операционная система МОС ВП.  Подсистема  управле-

ния. Сообщения системы и действия по восстановлению. Спра-

вочный материал 00152-01 97 02-2

     4. Операционная система МОС ВП.  Подсистема  управле-

ния. Сообщения системы и действия по восстановлению. Спра-

вочный материал 00152-01 97 02-3
 


   
                       - 56K -  
  
                    00152-01 92 16  
                                                      
   ------------------------------------------------------------
   I                                                          I
   I                  Лист регистрации изменений              I
   I                                                          I
   I----------------------------------------------------------I
   IНомера листов (страниц)IВсего IN     IВходящий IПодп.IДатаI
   I-----------------------IлистовIдоку- IN сопро- I     I    I
   IИ IИз- IЗа- IНо- IАнну-I(стра-Iмента Iводитель-I     I    I
   Iз Iме- Iме- Iвых Iлиро-Iниц   I      Iного до- I     I    I
   Iм Iнен-Iнен-I    Iван- Iв до- I      Iкум. и   I     I    I
   I. Iных Iных I    Iных  Iкум.  I      Iдата     I     I    I
   I----------------------------------------------------------I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!