пользуется стандартный файл ввода. При задании в вызы-
вающей строке нескольких файлов с ключами "-f" в ка-
честве описания используется конкатенация записей в
указанных файлах.
Компонента создается, если она не существует, или если
хотя бы один из файлов (от которых она прямо или кос-
44
AПK.00210-01 33 01-5
венно зависит) изменялся после последней сборки.
Командный файл содержит набор операторов, которые оп-
ределяют условия и правила порождения компонент. Опе-
ратор начинается со списка имен требуемых об'ектов,
после которого стоит один или два символа "двоеточие"
и, возможно, следует список исходных файлов. Текст
после точки с запятой, а также все последующие строки,
начинающиеся символом табуляции, представляют собой
команды языка SHELL, которые должны выполняться для
создания компоненты.
При записи имен порождаемых и требующихся файлов до-
пустимо использование регулярных выражений (использу-
ются метасимволы "*", "[-]", "?", интерпретация кото-
рых совпадает с принятой в языке SHELL; ).
Остаток строки, начинающийся символом "#", считается
комментарием и не рассматривается программой make.
Следующий командный файл содержит правила создания
программы "pgm", получаемой в результате сборки файлов
"a.o" и "b.o", которые, в свою очередь, зависят от
файлов "a.c", "b.c" и "incl.h".
pgm: a.o b.o
cc a.o b.o -o pgm
a.o: incl.h a.c
cc -c a.c
b.o: incl.h b.c
45
AПK.00210-01 33 01-5
cc -c b.c
В данном примере каждый из порождаемых об'ектов зави-
сит от существования двух компонет, и при отсутствии
или в результате модификации любой из них, для
получения об'екта выполняются одинаковые действия.
Существует возможность задания нескольких правил по-
рождения для одного и того же об'екта. В этом случае,
в качестве разделителя можно использовать два символа
"двоеточие":
aa :: x.c y.c
echo ОБНОВЛЕН ФАЙЛ НА ЯЗЫКЕ СИ
aa :: x.y
echo ОБНОВЛЕН ФАЙЛ НА ЯЗЫКЕ YACC
Командный файл может содержать вызовы макропеременных,
для задания значений которых используются строки вида:
имя = значение
При выполнении командного файла все конструкции:
$(имя)
или
${имя}
замещаются "значением" соответствующей переменной
"имя". Если "имя" состоит из одного символа, то в мак-
ровызове скобки можно не использовать.
Значения макропеременных можно устанавливать не только
46
AПK.00210-01 33 01-5
в самом командном файле, но и при вызове make. Если
одна и та же макропеременная одновременно определяется
и в комадном файле и в вызове, используется значение,
заданное при вызове. Так, если командный файл содержит
строки:
TEXT = ЗАДАНИЕ 2
progr:
echo ${TEXT}
запуск команды make без параметров приведет к выдаче
текста "ЗАДАНИЕ 2". Если этот же командный файл запус-
кается командой:
make "TEXT = ПРИМЕР 1"
в результате ее работы будет получено сообщение
"ПРИМЕР 1".
Существует несколько специальных макропеременных, зна-
чения которых устанавливаются самой программой make:
$* Имя создаваемой компоненты без суффикса;
$? Список модифицированных файлов, приводящих к вы-
полнению команд данного правила;
$@ Полное имя создаваемого файла;
$< Список исходных файлов;
$$ Символ "$".
47
AПK.00210-01 33 01-5
Необходимый об'ект можно получить из какого-либо ис-
ходного файла одним из четырех способов:
- непосредственно задать имена и правила порожде-
ния;
- ввести общее правило для имен с указанными суф-
фиксами;
- задать правило ".DEFAULT";
- использовать стандартные соглашения о преобразо-
ваниях.
В операторе, непосредственно указывающем метод получе-
ния одного файла из другого, явно задаются полные име-
на порождаемого и исходного файлов. Например, получе-
ние файла "a.К" из "a.М":
a.К : a.М
mv a.M a.K
В общем правиле указываются суффиксы и задаются коман-
ды, преобразующие файлы с одним суффиксом в файлы с
тем же именем, но другим суффиксом. Например, правило
получения файлов с суффиксом ".o" из файлов оканчива-
ющихся на ".с" может иметь вид:
.c.o :
cc -c $<
Кроме того, в командном файле необходимо указать, что
48
AПK.00210-01 33 01-5
".o" и ".c" являются суффиксами и задать порядок при-
менения общих правил преобразования (для случаев,
когда несколько общих правил описывают переход от
разных исходных файлов к одному порожденному). Это де-
лается с помощью оператора:
.SUFFIXES: .o .c
Если в списке порождаемых об'ектов при правиле указана
конструкция ".DEFAULT", то это правило выполняется
всякий раз, когда программа make не имеет информации о
методе получения требуемого файла. Например, если в
командном файле задано правило:
.DEFAULT:
cp dummy $@
будут создаваться все недостающие файлы (каждый из ко-
торых получается с помощью копирования файла dummy).
Во время работы командного файла можно использовать
набор стандартных правил получения компонент, имеющий-
ся в системе. Так, первый из приведенных примеров
можно было зaпиcaть знaчитeльнo кopoчe:
pgm: a.o b.o
cc a.o b.o -o pgm
a.o b.o: incl.h
При использовании стандартных правил, существует воз-
можность изменения имен некоторых компиляторов и клю-
49
AПK.00210-01 33 01-5
чей, с которыми они вызываются. Имена компиляторов за-
даются макропеременными:
AS Ассемблер (as);
CC Си-компилятор (cc);
RC Фортран-77 (f77);
LEX Генератор лексических анализаторов Lex (lex);
YACC Компилятор компиляторов Yacc (yacc).
Ключи стандартных компиляторов являются значениями
следующих макропеременных:
CFLAGS Ключи Си-компилятора (cc);
FFLAGS Ключи компилятора Фортран-77 (f77);
LFLAGS Ключи генератора программ лексического ана-
лиза lex;
YFLAGS Ключи компилятора yacc;
LOADLIBES Список используемых библиотек.
При использовании стандартных правил используется сле-
дующее соглащение о трактовке суффиксов:
.out Файл вывода;
.o Об'ектный файл;
.c Исходный файл на языке Си;
50
AПK.00210-01 33 01-5
.f Исходный файл на Фортране;
.e Исходный файл на языке Efl;
.r Исходный файл на Ратфоре;
.y Исходный файл на Yacc;
.l Исходный файл на Lex;
.s Исходный файл на Ассемблере;
.p Исходный файл на Паскале.
Для выполнения каждой командной строки SHELL запуска-
ется отдельный процесс. Поэтому при использовании мак-
ропеременных требуется принимать специальные меры,
например, оформлять группы команд, использующие общие
макро в виде составной команды SHELL.
Если в командном файле не был задан специальный вход
".SILENT", или первым символом команды не был символ
"@", строка при выполнении распечатывается. Кроме
того, при вызове make для установки режима подавления
выдачи исполняемых команд можно использовать ключ
"-s".
Создание файла с помощью программы make может быть
случайно или преднамеренно прервано. Если недоделанный
файл не является справочником, и в списке порождаемых
об'ектов наряду с именем этого файла указано специаль-
ное имя ".PRECIOUS", файл уничтожается.
51
AПK.00210-01 33 01-5
Существует возможность работы с файлами записанными в
архив. При этом оценивается время последней модифика-
ции файла (а не время создания архива или время записи
файла в архив). Имя находящегося в архиве файла может
указываться, как в списке порождаемых об'ектов, так и
среди имен, от которых зависит создание об'ектов.
Кроме имени файла, при работе с библиотеками об'ектных
модулей, можно указывать имена функций. Для того, что-
бы отличать имена компонент, записанных в архив, ис-
пользуется специальная форма записи имен:
a(b) означает, что файл с именем "b" хранится в
архиве "a";
a((_b)) означает внешнее имя функции "_b" в архиве
"a".
Если код завершения какой-либо команды не равен нулю,
выполнение программы make обычно прекращается. Ошибка
такого рода может быть проигнорирована. С этой целью в
список порождаемых об'ектов вводится специальное имя
".IGNORE", либо перед выполняемой командой указывается
дефис "-".
Команда make может быть вызвана со следующими ключами:
-d Отладочный режим. В этом режиме выдается дополни-
тельная информация о выполнении командного файла;
-f Следующий параметр является именем командного
файла; по умолчанию - "makefile" или "Makefile".
52
AПK.00210-01 33 01-5
Если этот ключ не задан, а в справочнике при-
сутствуют оба имени, в качестве командного файла
используется "makefile";
-i Режим игнорирования ошибочных кодов завершения
команд. Эквивалентно специальному макро
".IGNORE:";
-k Если код возврата команды не равен нулю, прекра-
тить обработку текущей ветви, и перейти к обра-
ботке следующих ветвей дерева, не зависящих от
текущей ветви;
-n Распечатать, но не выполнять команды, предназна-
ченные для сборки программы;
-p Распечатка версии исходного дерева;
-q Осуществляет проверку указанного об'екта и
возвращает код завершения 0, если он требует мо-
дификации, или -1 в противном случае;
-r Эквивалентно заданию макро ".SUFFIXES:" без спис-
ка. Отменяет действие стандартных правил порожде-
ния;
-s Эквивалентно специальному макро ".SILENT:" - от-
мена распечатки командных строк;
-S Прервать выполнение программы при ошибочном за-
вершении какой-либо команды;
53
AПK.00210-01 33 01-5
-t Обновить дату модификации об'екта, не выполняя
каких-либо команд;
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh, touch
ЗАМЕЧАНИЯ:
Команды, которые выполняются языком управления задани-
ями (например cd), не должны переходить на новую
строку в командном файле.
54
AПK.00210-01 33 01-5
ИМЯ:
mesg - открыть или закрыть прием сообщений.
ФОРМАТ:
mesg [n] [y]
ОПИСАНИЕ:
Команда mesg с параметром "n" запрещает другим пользо-
вателям производить запись на терминал данного пользо-
вателя. Команда mesg с параметром "y" восстанавливает
это право. При отсутствии параметров команда mesg ин-
формирует о текущем состоянии без изменения его.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
write
ДИАГНОСТИКА:
Код возврата равен 0, если сообщения могут принимать-
ся, 1, если нет, и 2 при ошибке.
55
AПK.00210-01 33 01-5
ИМЯ:
mkdir - создать справочник.
ФОРМАТ:
mkdir имяспр ...
ОПИСАНИЕ:
Koмaндa mkdir coздaeт yкaзaнныe cпpaвoчники co
cтaтycoм 755. Стандартные входы "." для самого спра-
вочника и ".." для порождающего справочника создаются
автоматически.
Для выполнения команды mkdir требуется право записи в
порождающем каталоге.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
rm
ДИАГНОСТИКА:
Команда mkdir выдает код возврата 0, если все справоч-
ники были успешно созданы. В противном случае печата-
ется диагностика и возвращается ненулевой код.
56
AПK.00210-01 33 01-5
ИМЯ:
mv - переместить файл.
ФОРМАТ:
mv файл1 файл2
mv файл ... справочник
ОПИСАНИЕ:
Команда mv перемещает "файл1" в "файл2".
Если "файл2" уже существует, он удаляется перед пере-
писыванием "файла1". Если статус файла "файл2" запре-
щает запись, но пользователю разрешена запись в данный
справочник, кoмaндa mv пeчaтaeт peжим и cчитывaeт
cтpoкy из cтaндapтнoгo ввoдa, ecли эта строка начина-
ется символом "y", происходит перезапись. В остальных
случаях происходит выход из mv.
Вторая форма команды приводит к тому, что один или
несколько "файлов" переписываются в "справочник" под
своими исходными именами.
Команда mv отказывается переписывать файл в самого
себя.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
cp, chmod
ЗАМЕЧАНИЯ:
Если "файл1" и "файл2" расположены в разных файловых
системах, команда mv должна скопировать файл и удалить
57
AПK.00210-01 33 01-5
исходный. В этом случае именем владельца становится
имя копирующего процесса, а связи с другими файлами
(альтернативные имена) теряются.
Справочники могут перемещаться только в пределах одной
и той же файловой системы.
ЗАМЕЧАНИЯ:
Команда mv должна бы иметь флаг "-f" аналогично коман-
де rm, для подавления запроса на подтвержение в слу-
чае, если целевой файл существует и защищен от записи.
58
AПK.00210-01 33 01-5
ИМЯ:
newgrp - сменить идентификатор группы.
ФОРМАТ:
newgrp идентификатор_группы
ОПИСАНИЕ:
Команда newgrp изменяет идентификатор группы выдавшего
ее пользователя, аналогично команде login. В результа-
те выполнения команды остается зарегистрированным этот
же пользователь, его текущий справочник не изменяется,
однако определение полномочий доступа к файлам произ-
водится на основании нового идентификатора группы;
Пароль запрашивается в том случае, если группа имеет
пароль, а сам пользователь - нет;
Команда newgrp выполняется интерпретатором команд.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
login
59
AПK.00210-01 33 01-5
ИМЯ:
nice, nohup - запустить команду понизив приоритет.
ФОРМАТ:
nice [-число] команда [параметры]
nohup команда [параметры]
ОПИСАНИЕ:
Команда nice выполняет указанную команду с низким при-
оритетом. Если присутствует параметр "число", приори-
тет численно увеличивается (большие числа означают
меньшие приоритеты) на эту величину до граничного зна-
чения 20. Значение "числа" по умолчанию равно 10.
Супер-пользователь может выполнять команды с приорите-
том выше обычного посредством указания отрицательного
приоритета, например, "--10".
Nohup выполняет указанную команду, игнорируя сигналы
останова и завершения от управляющего терминала. При-
оритет увеличивается на 5. Команда nohup должна быть
вызвана с "&" для того, чтобы предотвратить ее реакцию
на прерывание или присвоение ею вводимой информации
следующего пользователя, который регистрируется на
этом же терминале.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh, csh
ДИАГНОСТИКА:
Команда nice возвращает код возврата входящей в нее
60
AПK.00210-01 33 01-5
команды.
ЗАМЕЧАНИЯ:
Команды nice и nohup являются специфическими для sh.
Если вы используете csh, команды, выполняемые с "&",
автоматически защищаются от сигналов останова от уп-
равляющего терминала. Имеется встроенная команда
nohup, которая обеспечивает защиту от завершения, од-
нако она не переадресовывает вывод в файл nohup.out.
Команда nice встроена в csh с синтаксисом, несколько
отличающимся от описанного здесь - "nice+10" устанав-
ливает положительный приоритет, а "nice-10" устанавли-
вает используемый супер-пользователем отрицательный
приоритет.
61
AПK.00210-01 33 01-5
ИМЯ:
nm - выдать список имен.
ФОРМАТ:
nm [-agnopru] [файл ...]
ОПИСАНИЕ:
Команда nm распечатывает список имен (таблицу симво-
лов) каждого из указанных в списке параметров
об'ектных файлов. Если параметр представляет собой ар-
хив, будет распечатываться таблица символов для каждо-
го об'ектного файла архива. Если "файл" не указан,
распечатываются символы из файла "a.out".
Каждому символическому имени предшествует его значение
(пробелы, если оно не определено) и одна из букв u
(неопределенное), a (абсолютное), t (символ текстового
сегмента), d (символ сегмента данных), b (символ сег-
мента bss) или c (общий символ). Если символ является
локальным (не внешним), эта буква печатается на нижнем
регистре. Вывод сортируется по алфавиту.
Возможны следующие опции:
-g Выдавать только глобальные (внешние) символы;
-n Отсортировать по значениям, а не по алфавиту;
-o Указывать имя файла или элемента архива в каждой
строке вывода, а не только один раз;
-p Не сортировать, печатать в порядке таблицы сим-
62
AПK.00210-01 33 01-5
волов;
-r Отсортировать в обратном порядке;
-u Печатать только неопределенные символы.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
ar, ar, a.out
63
AПK.00210-01 33 01-5
ИМЯ:
od - форматирование информации просмотра.
ФОРМАТ:
od [-format] [file] [[+]offset[.][b]
[label]]
ОПИСАНИЕ:
Команда od выдает в стандартный файл вывода содержимое
файла "file" в указанном формате. Если формат не
задан, то вывод производится по формату "o". Информа-
ция выдается с указанного места (по умолчанию - с на-
чала файла) до конца файла.
Первый параметр ("format") может содержать следующие
ключи:
a Интерпретировать байты как символы кода КОИ-8.
Неграфические символы обозначаются их именами,
все остальные байты, значения которых не входят в
код КОИ-8, выдаются в восьмеричном виде. Если од-
новременно задан ключ "p", то байты, значения ко-
торых имеют четный паритет - подчеркиваются. Если
задан ключ "P" - подчеркиваются символы имеющие
нечетный паритет;
b Выдавать восьмеричные значения байтов;
c Интерпретировать байты как символы кода КОИ-8.
Некоторые неграфические символы обозначаются так
же, как и в языке Си: - пусто; - новая
64
AПK.00210-01 33 01-5
строка; возврат на шаг;7 - возврат карет-
ки; - перевод формата; - табуляция. Все ос-
тальные байты, значения которых не входят в код
КОИ-8, выдаются в восьмеричном виде;
d Выдавать слова (short) в виде десятичных чисел
без знака;
f Выдавать длинные слова (long) в виде вещественных
чисел;
h Выдавать слова (short) в виде шестнадцатиричных
чисел без знака;
i Выдавать слова (short) в виде десятичных чисел со
знаком;
l Выдавать длинные слова (long) в виде десятичных
чисел со знаком;
o Выдавать слова (short) в виде восьмеричных чисел;
s[N] Интерпретировать последовательность байтов как
текстовую строку, завершающуюся символом "пусто"
(' '). Число N задает минимальную длину просмат-
риваемой последовательности, по умолчанию N равно
3;
v Выдавать все значения. По умолчанию, вместо пос-
ледовательности повторяющихся строк выдается
символ '*' в первой позиции;
65
AПK.00210-01 33 01-5
w[N] Этот ключ определяет для каждой входной строки
число обрабатываемых байт. Если этот ключ не
указан, то из каждой входной строки считывается
16 байт. Если N опущено используется 32 байта;
x Выдавать слова (short) в виде шестнадцатеричных
чисел.
Параметр "file" определяет имя файла, который должен
быть просмотрен. Если этот параметр не задан, исполь-
зуется стандартный файл ввода.
Параметр "offset" задает смещение в файле, откуда
должна начинаться выдача. Этот параметр обычно
рассматривается как восьмеричное число байтов. Если
после него стоит ".", смещение интерпретируется в де-
сятичном коде. Если после него стоит "b", смещение ин-
терпретируется в блоках по 512 байт. Если параметр
"file" отсутствует, параметру "offset" должен пред-
шествовать знак "+".
Аргумент "label" является псевдо-адресом для первого
просматриваемого байта. Он задается в скобках "()"
после задания смещения и имеет тот же синтаксис, что и
смещение.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
adb
ЗАМЕЧАНИЯ:
Имя файла не должно начинаться с символа "+". Допуска-
66
AПK.00210-01 33 01-5
ется только одно имя файла.
67
AПK.00210-01 33 01-5
ИМЯ:
opr - вывод файлов ДЕМОС в область накопления МВМ.
ФОРМАТ:
opr [-h] [-u идвм] [-v идвм] [-p копия] [-n имя_фай-
ла] [-c класс] [-t тег] [-Т заголовок] [файл
...]
Описание:
Командой opr обеспечивается вывод файлов ДЕМОС в оче-
редь файлов накопления.
Режимы файлов накопления для данных устройств устанав-
ливаются командой МВМ SPOOL, однако команда opr изме-
няет эти режимы на основании своих параметров для вво-
димых файлов.
Следующие режимы файлов накопления меняются командой
opr:
-h эта опция указывает, что для печатающего устрой-
ства устанавливается режим работы HOLD, при ко-
тором создаваемые на устройстве при выполнении
команды opr файлы накопления будут помещаться в
состоянии задержки;
идвм указывает идентификатор ВМ, которой предназнача-
ется файл накопления. По умолчанию идентификатор
ВМ выбирается из 5-ого поля соответствующей
пользователю записи файла /етc/passwd;
68
AПK.00210-01 33 01-5
копия определяет количество копий файлов накопления,
kоторое должно быть получено при выводе этих
файлов на реальное устройство вывода;
имя_файла
указывает, что созданному файлу накопления, для
указанных файлов ДЕМОС, следует присвоить иден-
тификатор файла в формате, принятом в ПДО или ОС
ЕС;
класс класс накопления, в который должен быть помещен
созданный файл накопления. По умолчанию файл на-
копления помещается в очередь класса А, если
задан вводной файл в команде opr, в противном
случае - в очередь класса Т;
-u указывает, что файлы накопления печатающего
устройства, создаваемые после выполнения коман-
ды, должны передаваться на перфокарточное
устройство ввода ВМ, идентификатор которой
представлен в опции;
-v указывает, что файлы накопления печатающего
устройства, создаваемые после выполнения коман-
ды, должны передаваться на АЦПУ ВМ, идентифика-
тор которой представлен в опции;
-t предназначена для занесения представленной в оп-
ции информации в teг файла накопления;
-T заголовок, формируемый разделитель печатных
69
AПK.00210-01 33 01-5
файлов;
файл имя файла в ДЕМОС.
ФАЙЛЫ:
/etc/passwd
поиск идентификатора ВМ
/tmp/opr????
временный файл
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
qprt
ЗАМЕЧАНИЯ:
Работа ВМ ДЕМОС в многопользовательском режиме проис-
ходит с отсоединенным пультом ВМ, поэтому изменение
режимов накопления для конкретного файла возможно
только командой opr.
Собственно операцию пересылки файла в область накопле-
ния и постановки его в очередь к реальному печатающему
устройству осуществляет следующий процесс
/rtc/spooler/opred, инициируемый командой opr.
70
AПK.00210-01 33 01-5
ИМЯ:
passwd - изменить входной пароль.
ФОРМАТ
passwd [имя]
ОПИСАНИЕ:
Данная команда изменяет (или устанавливает) пароль,
соответствующий указанному имени пользователя (по
умолчанию принимается текущий идентификатор пользова-
теля).
Программа запрашивает сначала старый пароль, а затем
новый. Пользователь должен указать оба. Новый пароль
должен быть введен дважды с целью предотвращения оши-
бок.
Новый пароль должен иметь длину по крайней мере четыре
символа, если он использует достаточно широкий алфа-
вит, и по крайней мере шесть символов, если все симво-
лы указываются в одном и том же регистре. Эти правила
ослабляются, если вы достаточно настойчивы.
Изменить пароль могут только владелец данного имени
или супер-пользователь; владелец должен доказать, что
он знает старый пароль.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
login, crypt
71
AПK.00210-01 33 01-5
ИМЯ:
PC - вызов компилятора с языка Паскаль
ФОРМАТ:
PC [ключ]...файл...
ОПИСАНИЕ:
Команда РС предназначена для вызова компилятора с язы-
ка Паскаль. Она воспринимает параметры трех типов: па-
раметры, имена которых заканчиваются на '.Р', считают-
ся исходными программами на языке Паскаль; они компи-
лируются , и каждая об'ектная программа остается в
файле, имя которого получается из имени соответству-
ющего исходного файла после замены ".Р" на ".О". Файл
".О" удаляется, если одна Паскаль-программа компилиру-
ется и загружается в одном проходе.
Об'ектные программы,полученные после действия команды
РС совместимы с об'ектными программами, полученными с
помощью команды СС (т.е. программы Паскаля и Си-
программы могут взаимно вызывать друг друга без спе-
циального интерфейса).
Сообщения об ошибках компиляции и выполнения помещают-
ся в файл с суффиксом ".L".
В команде РС могут задаваться следующие ключи:
-C oтмeняeт фaзy cбopки и вызывaeт гeнepaцию
oб'eктнoгo кoдa дaжe тoгдa, кoгда кoмпилиpyeтcя
тoлькo oднa пpoгpaммa;
72
AПK.00210-01 33 01-5
-Dимя=опр -Dимя
oпpeдeляeт yкaзaннoe "имя" для пpeпpoцeccopa.
Ecли oпpeдeлeниe нe зaдaнo, дaннoe имя
oпpeдeляeтcя кaк "1";
-S кoмпилиpyeт пepeчиcлeнныe Пacкaль-пpoгpaммы и
ocтaвляeт peзyльтaт paбoты в видe acceмблepнoгo
тeкcтa в cooтвeтcтвyющиx фaйлax c cyффикcaми
".S";
-N выдaeт cпиcoк кoмaнд, гeнepиpyeмыx PC, нo нe
выпoлняeт иx;
-P зaпycкaeт тoлькo пpeпpoцeccop для пepeчиcлeнныx
Пacкaль-пpoгpaмм, peзyльтaт работы которого по-
мещается в файл с соответствующим именем и суф-
фиксом ".I".
-Uимя yдaляeт вce нaчaльныe oпpeдeлeния yкaзaннoгo
имeни;
-Iсправ
пoиcк фaйлoв "#include" в cпpaвoчникe "cпpaв",
ecли oни нe были нaйдeны в тeкyщeм cпpaвoчникe
или в /usr/src/include;
ocтaльныe пapaмeтpы являютcя либo coвмecтимыми c
Пacкaлeм или Cи об'ектными программами , полученными
обычно в результате предшествующих выполнений команд
РС или СС, либо программ,совместимых с Паскалем и Си.
вающей строке нескольких файлов с ключами "-f" в ка-
честве описания используется конкатенация записей в
указанных файлах.
Компонента создается, если она не существует, или если
хотя бы один из файлов (от которых она прямо или кос-
44
AПK.00210-01 33 01-5
венно зависит) изменялся после последней сборки.
Командный файл содержит набор операторов, которые оп-
ределяют условия и правила порождения компонент. Опе-
ратор начинается со списка имен требуемых об'ектов,
после которого стоит один или два символа "двоеточие"
и, возможно, следует список исходных файлов. Текст
после точки с запятой, а также все последующие строки,
начинающиеся символом табуляции, представляют собой
команды языка SHELL, которые должны выполняться для
создания компоненты.
При записи имен порождаемых и требующихся файлов до-
пустимо использование регулярных выражений (использу-
ются метасимволы "*", "[-]", "?", интерпретация кото-
рых совпадает с принятой в языке SHELL; ).
Остаток строки, начинающийся символом "#", считается
комментарием и не рассматривается программой make.
Следующий командный файл содержит правила создания
программы "pgm", получаемой в результате сборки файлов
"a.o" и "b.o", которые, в свою очередь, зависят от
файлов "a.c", "b.c" и "incl.h".
pgm: a.o b.o
cc a.o b.o -o pgm
a.o: incl.h a.c
cc -c a.c
b.o: incl.h b.c
45
AПK.00210-01 33 01-5
cc -c b.c
В данном примере каждый из порождаемых об'ектов зави-
сит от существования двух компонет, и при отсутствии
или в результате модификации любой из них, для
получения об'екта выполняются одинаковые действия.
Существует возможность задания нескольких правил по-
рождения для одного и того же об'екта. В этом случае,
в качестве разделителя можно использовать два символа
"двоеточие":
aa :: x.c y.c
echo ОБНОВЛЕН ФАЙЛ НА ЯЗЫКЕ СИ
aa :: x.y
echo ОБНОВЛЕН ФАЙЛ НА ЯЗЫКЕ YACC
Командный файл может содержать вызовы макропеременных,
для задания значений которых используются строки вида:
имя = значение
При выполнении командного файла все конструкции:
$(имя)
или
${имя}
замещаются "значением" соответствующей переменной
"имя". Если "имя" состоит из одного символа, то в мак-
ровызове скобки можно не использовать.
Значения макропеременных можно устанавливать не только
46
AПK.00210-01 33 01-5
в самом командном файле, но и при вызове make. Если
одна и та же макропеременная одновременно определяется
и в комадном файле и в вызове, используется значение,
заданное при вызове. Так, если командный файл содержит
строки:
TEXT = ЗАДАНИЕ 2
progr:
echo ${TEXT}
запуск команды make без параметров приведет к выдаче
текста "ЗАДАНИЕ 2". Если этот же командный файл запус-
кается командой:
make "TEXT = ПРИМЕР 1"
в результате ее работы будет получено сообщение
"ПРИМЕР 1".
Существует несколько специальных макропеременных, зна-
чения которых устанавливаются самой программой make:
$* Имя создаваемой компоненты без суффикса;
$? Список модифицированных файлов, приводящих к вы-
полнению команд данного правила;
$@ Полное имя создаваемого файла;
$< Список исходных файлов;
$$ Символ "$".
47
AПK.00210-01 33 01-5
Необходимый об'ект можно получить из какого-либо ис-
ходного файла одним из четырех способов:
- непосредственно задать имена и правила порожде-
ния;
- ввести общее правило для имен с указанными суф-
фиксами;
- задать правило ".DEFAULT";
- использовать стандартные соглашения о преобразо-
ваниях.
В операторе, непосредственно указывающем метод получе-
ния одного файла из другого, явно задаются полные име-
на порождаемого и исходного файлов. Например, получе-
ние файла "a.К" из "a.М":
a.К : a.М
mv a.M a.K
В общем правиле указываются суффиксы и задаются коман-
ды, преобразующие файлы с одним суффиксом в файлы с
тем же именем, но другим суффиксом. Например, правило
получения файлов с суффиксом ".o" из файлов оканчива-
ющихся на ".с" может иметь вид:
.c.o :
cc -c $<
Кроме того, в командном файле необходимо указать, что
48
AПK.00210-01 33 01-5
".o" и ".c" являются суффиксами и задать порядок при-
менения общих правил преобразования (для случаев,
когда несколько общих правил описывают переход от
разных исходных файлов к одному порожденному). Это де-
лается с помощью оператора:
.SUFFIXES: .o .c
Если в списке порождаемых об'ектов при правиле указана
конструкция ".DEFAULT", то это правило выполняется
всякий раз, когда программа make не имеет информации о
методе получения требуемого файла. Например, если в
командном файле задано правило:
.DEFAULT:
cp dummy $@
будут создаваться все недостающие файлы (каждый из ко-
торых получается с помощью копирования файла dummy).
Во время работы командного файла можно использовать
набор стандартных правил получения компонент, имеющий-
ся в системе. Так, первый из приведенных примеров
можно было зaпиcaть знaчитeльнo кopoчe:
pgm: a.o b.o
cc a.o b.o -o pgm
a.o b.o: incl.h
При использовании стандартных правил, существует воз-
можность изменения имен некоторых компиляторов и клю-
49
AПK.00210-01 33 01-5
чей, с которыми они вызываются. Имена компиляторов за-
даются макропеременными:
AS Ассемблер (as);
CC Си-компилятор (cc);
RC Фортран-77 (f77);
LEX Генератор лексических анализаторов Lex (lex);
YACC Компилятор компиляторов Yacc (yacc).
Ключи стандартных компиляторов являются значениями
следующих макропеременных:
CFLAGS Ключи Си-компилятора (cc);
FFLAGS Ключи компилятора Фортран-77 (f77);
LFLAGS Ключи генератора программ лексического ана-
лиза lex;
YFLAGS Ключи компилятора yacc;
LOADLIBES Список используемых библиотек.
При использовании стандартных правил используется сле-
дующее соглащение о трактовке суффиксов:
.out Файл вывода;
.o Об'ектный файл;
.c Исходный файл на языке Си;
50
AПK.00210-01 33 01-5
.f Исходный файл на Фортране;
.e Исходный файл на языке Efl;
.r Исходный файл на Ратфоре;
.y Исходный файл на Yacc;
.l Исходный файл на Lex;
.s Исходный файл на Ассемблере;
.p Исходный файл на Паскале.
Для выполнения каждой командной строки SHELL запуска-
ется отдельный процесс. Поэтому при использовании мак-
ропеременных требуется принимать специальные меры,
например, оформлять группы команд, использующие общие
макро в виде составной команды SHELL.
Если в командном файле не был задан специальный вход
".SILENT", или первым символом команды не был символ
"@", строка при выполнении распечатывается. Кроме
того, при вызове make для установки режима подавления
выдачи исполняемых команд можно использовать ключ
"-s".
Создание файла с помощью программы make может быть
случайно или преднамеренно прервано. Если недоделанный
файл не является справочником, и в списке порождаемых
об'ектов наряду с именем этого файла указано специаль-
ное имя ".PRECIOUS", файл уничтожается.
51
AПK.00210-01 33 01-5
Существует возможность работы с файлами записанными в
архив. При этом оценивается время последней модифика-
ции файла (а не время создания архива или время записи
файла в архив). Имя находящегося в архиве файла может
указываться, как в списке порождаемых об'ектов, так и
среди имен, от которых зависит создание об'ектов.
Кроме имени файла, при работе с библиотеками об'ектных
модулей, можно указывать имена функций. Для того, что-
бы отличать имена компонент, записанных в архив, ис-
пользуется специальная форма записи имен:
a(b) означает, что файл с именем "b" хранится в
архиве "a";
a((_b)) означает внешнее имя функции "_b" в архиве
"a".
Если код завершения какой-либо команды не равен нулю,
выполнение программы make обычно прекращается. Ошибка
такого рода может быть проигнорирована. С этой целью в
список порождаемых об'ектов вводится специальное имя
".IGNORE", либо перед выполняемой командой указывается
дефис "-".
Команда make может быть вызвана со следующими ключами:
-d Отладочный режим. В этом режиме выдается дополни-
тельная информация о выполнении командного файла;
-f Следующий параметр является именем командного
файла; по умолчанию - "makefile" или "Makefile".
52
AПK.00210-01 33 01-5
Если этот ключ не задан, а в справочнике при-
сутствуют оба имени, в качестве командного файла
используется "makefile";
-i Режим игнорирования ошибочных кодов завершения
команд. Эквивалентно специальному макро
".IGNORE:";
-k Если код возврата команды не равен нулю, прекра-
тить обработку текущей ветви, и перейти к обра-
ботке следующих ветвей дерева, не зависящих от
текущей ветви;
-n Распечатать, но не выполнять команды, предназна-
ченные для сборки программы;
-p Распечатка версии исходного дерева;
-q Осуществляет проверку указанного об'екта и
возвращает код завершения 0, если он требует мо-
дификации, или -1 в противном случае;
-r Эквивалентно заданию макро ".SUFFIXES:" без спис-
ка. Отменяет действие стандартных правил порожде-
ния;
-s Эквивалентно специальному макро ".SILENT:" - от-
мена распечатки командных строк;
-S Прервать выполнение программы при ошибочном за-
вершении какой-либо команды;
53
AПK.00210-01 33 01-5
-t Обновить дату модификации об'екта, не выполняя
каких-либо команд;
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh, touch
ЗАМЕЧАНИЯ:
Команды, которые выполняются языком управления задани-
ями (например cd), не должны переходить на новую
строку в командном файле.
54
AПK.00210-01 33 01-5
ИМЯ:
mesg - открыть или закрыть прием сообщений.
ФОРМАТ:
mesg [n] [y]
ОПИСАНИЕ:
Команда mesg с параметром "n" запрещает другим пользо-
вателям производить запись на терминал данного пользо-
вателя. Команда mesg с параметром "y" восстанавливает
это право. При отсутствии параметров команда mesg ин-
формирует о текущем состоянии без изменения его.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
write
ДИАГНОСТИКА:
Код возврата равен 0, если сообщения могут принимать-
ся, 1, если нет, и 2 при ошибке.
55
AПK.00210-01 33 01-5
ИМЯ:
mkdir - создать справочник.
ФОРМАТ:
mkdir имяспр ...
ОПИСАНИЕ:
Koмaндa mkdir coздaeт yкaзaнныe cпpaвoчники co
cтaтycoм 755. Стандартные входы "." для самого спра-
вочника и ".." для порождающего справочника создаются
автоматически.
Для выполнения команды mkdir требуется право записи в
порождающем каталоге.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
rm
ДИАГНОСТИКА:
Команда mkdir выдает код возврата 0, если все справоч-
ники были успешно созданы. В противном случае печата-
ется диагностика и возвращается ненулевой код.
56
AПK.00210-01 33 01-5
ИМЯ:
mv - переместить файл.
ФОРМАТ:
mv файл1 файл2
mv файл ... справочник
ОПИСАНИЕ:
Команда mv перемещает "файл1" в "файл2".
Если "файл2" уже существует, он удаляется перед пере-
писыванием "файла1". Если статус файла "файл2" запре-
щает запись, но пользователю разрешена запись в данный
справочник, кoмaндa mv пeчaтaeт peжим и cчитывaeт
cтpoкy из cтaндapтнoгo ввoдa, ecли эта строка начина-
ется символом "y", происходит перезапись. В остальных
случаях происходит выход из mv.
Вторая форма команды приводит к тому, что один или
несколько "файлов" переписываются в "справочник" под
своими исходными именами.
Команда mv отказывается переписывать файл в самого
себя.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
cp, chmod
ЗАМЕЧАНИЯ:
Если "файл1" и "файл2" расположены в разных файловых
системах, команда mv должна скопировать файл и удалить
57
AПK.00210-01 33 01-5
исходный. В этом случае именем владельца становится
имя копирующего процесса, а связи с другими файлами
(альтернативные имена) теряются.
Справочники могут перемещаться только в пределах одной
и той же файловой системы.
ЗАМЕЧАНИЯ:
Команда mv должна бы иметь флаг "-f" аналогично коман-
де rm, для подавления запроса на подтвержение в слу-
чае, если целевой файл существует и защищен от записи.
58
AПK.00210-01 33 01-5
ИМЯ:
newgrp - сменить идентификатор группы.
ФОРМАТ:
newgrp идентификатор_группы
ОПИСАНИЕ:
Команда newgrp изменяет идентификатор группы выдавшего
ее пользователя, аналогично команде login. В результа-
те выполнения команды остается зарегистрированным этот
же пользователь, его текущий справочник не изменяется,
однако определение полномочий доступа к файлам произ-
водится на основании нового идентификатора группы;
Пароль запрашивается в том случае, если группа имеет
пароль, а сам пользователь - нет;
Команда newgrp выполняется интерпретатором команд.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
login
59
AПK.00210-01 33 01-5
ИМЯ:
nice, nohup - запустить команду понизив приоритет.
ФОРМАТ:
nice [-число] команда [параметры]
nohup команда [параметры]
ОПИСАНИЕ:
Команда nice выполняет указанную команду с низким при-
оритетом. Если присутствует параметр "число", приори-
тет численно увеличивается (большие числа означают
меньшие приоритеты) на эту величину до граничного зна-
чения 20. Значение "числа" по умолчанию равно 10.
Супер-пользователь может выполнять команды с приорите-
том выше обычного посредством указания отрицательного
приоритета, например, "--10".
Nohup выполняет указанную команду, игнорируя сигналы
останова и завершения от управляющего терминала. При-
оритет увеличивается на 5. Команда nohup должна быть
вызвана с "&" для того, чтобы предотвратить ее реакцию
на прерывание или присвоение ею вводимой информации
следующего пользователя, который регистрируется на
этом же терминале.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh, csh
ДИАГНОСТИКА:
Команда nice возвращает код возврата входящей в нее
60
AПK.00210-01 33 01-5
команды.
ЗАМЕЧАНИЯ:
Команды nice и nohup являются специфическими для sh.
Если вы используете csh, команды, выполняемые с "&",
автоматически защищаются от сигналов останова от уп-
равляющего терминала. Имеется встроенная команда
nohup, которая обеспечивает защиту от завершения, од-
нако она не переадресовывает вывод в файл nohup.out.
Команда nice встроена в csh с синтаксисом, несколько
отличающимся от описанного здесь - "nice+10" устанав-
ливает положительный приоритет, а "nice-10" устанавли-
вает используемый супер-пользователем отрицательный
приоритет.
61
AПK.00210-01 33 01-5
ИМЯ:
nm - выдать список имен.
ФОРМАТ:
nm [-agnopru] [файл ...]
ОПИСАНИЕ:
Команда nm распечатывает список имен (таблицу симво-
лов) каждого из указанных в списке параметров
об'ектных файлов. Если параметр представляет собой ар-
хив, будет распечатываться таблица символов для каждо-
го об'ектного файла архива. Если "файл" не указан,
распечатываются символы из файла "a.out".
Каждому символическому имени предшествует его значение
(пробелы, если оно не определено) и одна из букв u
(неопределенное), a (абсолютное), t (символ текстового
сегмента), d (символ сегмента данных), b (символ сег-
мента bss) или c (общий символ). Если символ является
локальным (не внешним), эта буква печатается на нижнем
регистре. Вывод сортируется по алфавиту.
Возможны следующие опции:
-g Выдавать только глобальные (внешние) символы;
-n Отсортировать по значениям, а не по алфавиту;
-o Указывать имя файла или элемента архива в каждой
строке вывода, а не только один раз;
-p Не сортировать, печатать в порядке таблицы сим-
62
AПK.00210-01 33 01-5
волов;
-r Отсортировать в обратном порядке;
-u Печатать только неопределенные символы.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
ar, ar, a.out
63
AПK.00210-01 33 01-5
ИМЯ:
od - форматирование информации просмотра.
ФОРМАТ:
od [-format] [file] [[+]offset[.][b]
[label]]
ОПИСАНИЕ:
Команда od выдает в стандартный файл вывода содержимое
файла "file" в указанном формате. Если формат не
задан, то вывод производится по формату "o". Информа-
ция выдается с указанного места (по умолчанию - с на-
чала файла) до конца файла.
Первый параметр ("format") может содержать следующие
ключи:
a Интерпретировать байты как символы кода КОИ-8.
Неграфические символы обозначаются их именами,
все остальные байты, значения которых не входят в
код КОИ-8, выдаются в восьмеричном виде. Если од-
новременно задан ключ "p", то байты, значения ко-
торых имеют четный паритет - подчеркиваются. Если
задан ключ "P" - подчеркиваются символы имеющие
нечетный паритет;
b Выдавать восьмеричные значения байтов;
c Интерпретировать байты как символы кода КОИ-8.
Некоторые неграфические символы обозначаются так
же, как и в языке Си: - пусто; - новая
64
AПK.00210-01 33 01-5
строка; возврат на шаг;7 - возврат карет-
ки; - перевод формата; - табуляция. Все ос-
тальные байты, значения которых не входят в код
КОИ-8, выдаются в восьмеричном виде;
d Выдавать слова (short) в виде десятичных чисел
без знака;
f Выдавать длинные слова (long) в виде вещественных
чисел;
h Выдавать слова (short) в виде шестнадцатиричных
чисел без знака;
i Выдавать слова (short) в виде десятичных чисел со
знаком;
l Выдавать длинные слова (long) в виде десятичных
чисел со знаком;
o Выдавать слова (short) в виде восьмеричных чисел;
s[N] Интерпретировать последовательность байтов как
текстовую строку, завершающуюся символом "пусто"
(' '). Число N задает минимальную длину просмат-
риваемой последовательности, по умолчанию N равно
3;
v Выдавать все значения. По умолчанию, вместо пос-
ледовательности повторяющихся строк выдается
символ '*' в первой позиции;
65
AПK.00210-01 33 01-5
w[N] Этот ключ определяет для каждой входной строки
число обрабатываемых байт. Если этот ключ не
указан, то из каждой входной строки считывается
16 байт. Если N опущено используется 32 байта;
x Выдавать слова (short) в виде шестнадцатеричных
чисел.
Параметр "file" определяет имя файла, который должен
быть просмотрен. Если этот параметр не задан, исполь-
зуется стандартный файл ввода.
Параметр "offset" задает смещение в файле, откуда
должна начинаться выдача. Этот параметр обычно
рассматривается как восьмеричное число байтов. Если
после него стоит ".", смещение интерпретируется в де-
сятичном коде. Если после него стоит "b", смещение ин-
терпретируется в блоках по 512 байт. Если параметр
"file" отсутствует, параметру "offset" должен пред-
шествовать знак "+".
Аргумент "label" является псевдо-адресом для первого
просматриваемого байта. Он задается в скобках "()"
после задания смещения и имеет тот же синтаксис, что и
смещение.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
adb
ЗАМЕЧАНИЯ:
Имя файла не должно начинаться с символа "+". Допуска-
66
AПK.00210-01 33 01-5
ется только одно имя файла.
67
AПK.00210-01 33 01-5
ИМЯ:
opr - вывод файлов ДЕМОС в область накопления МВМ.
ФОРМАТ:
opr [-h] [-u идвм] [-v идвм] [-p копия] [-n имя_фай-
ла] [-c класс] [-t тег] [-Т заголовок] [файл
...]
Описание:
Командой opr обеспечивается вывод файлов ДЕМОС в оче-
редь файлов накопления.
Режимы файлов накопления для данных устройств устанав-
ливаются командой МВМ SPOOL, однако команда opr изме-
няет эти режимы на основании своих параметров для вво-
димых файлов.
Следующие режимы файлов накопления меняются командой
opr:
-h эта опция указывает, что для печатающего устрой-
ства устанавливается режим работы HOLD, при ко-
тором создаваемые на устройстве при выполнении
команды opr файлы накопления будут помещаться в
состоянии задержки;
идвм указывает идентификатор ВМ, которой предназнача-
ется файл накопления. По умолчанию идентификатор
ВМ выбирается из 5-ого поля соответствующей
пользователю записи файла /етc/passwd;
68
AПK.00210-01 33 01-5
копия определяет количество копий файлов накопления,
kоторое должно быть получено при выводе этих
файлов на реальное устройство вывода;
имя_файла
указывает, что созданному файлу накопления, для
указанных файлов ДЕМОС, следует присвоить иден-
тификатор файла в формате, принятом в ПДО или ОС
ЕС;
класс класс накопления, в который должен быть помещен
созданный файл накопления. По умолчанию файл на-
копления помещается в очередь класса А, если
задан вводной файл в команде opr, в противном
случае - в очередь класса Т;
-u указывает, что файлы накопления печатающего
устройства, создаваемые после выполнения коман-
ды, должны передаваться на перфокарточное
устройство ввода ВМ, идентификатор которой
представлен в опции;
-v указывает, что файлы накопления печатающего
устройства, создаваемые после выполнения коман-
ды, должны передаваться на АЦПУ ВМ, идентифика-
тор которой представлен в опции;
-t предназначена для занесения представленной в оп-
ции информации в teг файла накопления;
-T заголовок, формируемый разделитель печатных
69
AПK.00210-01 33 01-5
файлов;
файл имя файла в ДЕМОС.
ФАЙЛЫ:
/etc/passwd
поиск идентификатора ВМ
/tmp/opr????
временный файл
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
qprt
ЗАМЕЧАНИЯ:
Работа ВМ ДЕМОС в многопользовательском режиме проис-
ходит с отсоединенным пультом ВМ, поэтому изменение
режимов накопления для конкретного файла возможно
только командой opr.
Собственно операцию пересылки файла в область накопле-
ния и постановки его в очередь к реальному печатающему
устройству осуществляет следующий процесс
/rtc/spooler/opred, инициируемый командой opr.
70
AПK.00210-01 33 01-5
ИМЯ:
passwd - изменить входной пароль.
ФОРМАТ
passwd [имя]
ОПИСАНИЕ:
Данная команда изменяет (или устанавливает) пароль,
соответствующий указанному имени пользователя (по
умолчанию принимается текущий идентификатор пользова-
теля).
Программа запрашивает сначала старый пароль, а затем
новый. Пользователь должен указать оба. Новый пароль
должен быть введен дважды с целью предотвращения оши-
бок.
Новый пароль должен иметь длину по крайней мере четыре
символа, если он использует достаточно широкий алфа-
вит, и по крайней мере шесть символов, если все симво-
лы указываются в одном и том же регистре. Эти правила
ослабляются, если вы достаточно настойчивы.
Изменить пароль могут только владелец данного имени
или супер-пользователь; владелец должен доказать, что
он знает старый пароль.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
login, crypt
71
AПK.00210-01 33 01-5
ИМЯ:
PC - вызов компилятора с языка Паскаль
ФОРМАТ:
PC [ключ]...файл...
ОПИСАНИЕ:
Команда РС предназначена для вызова компилятора с язы-
ка Паскаль. Она воспринимает параметры трех типов: па-
раметры, имена которых заканчиваются на '.Р', считают-
ся исходными программами на языке Паскаль; они компи-
лируются , и каждая об'ектная программа остается в
файле, имя которого получается из имени соответству-
ющего исходного файла после замены ".Р" на ".О". Файл
".О" удаляется, если одна Паскаль-программа компилиру-
ется и загружается в одном проходе.
Об'ектные программы,полученные после действия команды
РС совместимы с об'ектными программами, полученными с
помощью команды СС (т.е. программы Паскаля и Си-
программы могут взаимно вызывать друг друга без спе-
циального интерфейса).
Сообщения об ошибках компиляции и выполнения помещают-
ся в файл с суффиксом ".L".
В команде РС могут задаваться следующие ключи:
-C oтмeняeт фaзy cбopки и вызывaeт гeнepaцию
oб'eктнoгo кoдa дaжe тoгдa, кoгда кoмпилиpyeтcя
тoлькo oднa пpoгpaммa;
72
AПK.00210-01 33 01-5
-Dимя=опр -Dимя
oпpeдeляeт yкaзaннoe "имя" для пpeпpoцeccopa.
Ecли oпpeдeлeниe нe зaдaнo, дaннoe имя
oпpeдeляeтcя кaк "1";
-S кoмпилиpyeт пepeчиcлeнныe Пacкaль-пpoгpaммы и
ocтaвляeт peзyльтaт paбoты в видe acceмблepнoгo
тeкcтa в cooтвeтcтвyющиx фaйлax c cyффикcaми
".S";
-N выдaeт cпиcoк кoмaнд, гeнepиpyeмыx PC, нo нe
выпoлняeт иx;
-P зaпycкaeт тoлькo пpeпpoцeccop для пepeчиcлeнныx
Пacкaль-пpoгpaмм, peзyльтaт работы которого по-
мещается в файл с соответствующим именем и суф-
фиксом ".I".
-Uимя yдaляeт вce нaчaльныe oпpeдeлeния yкaзaннoгo
имeни;
-Iсправ
пoиcк фaйлoв "#include" в cпpaвoчникe "cпpaв",
ecли oни нe были нaйдeны в тeкyщeм cпpaвoчникe
или в /usr/src/include;
ocтaльныe пapaмeтpы являютcя либo coвмecтимыми c
Пacкaлeм или Cи об'ектными программами , полученными
обычно в результате предшествующих выполнений команд
РС или СС, либо программ,совместимых с Паскалем и Си.