ошибки.

90
АПК 00210-01 33 01-4

wait Происходит ожидание всех порожденных процессов.
В интерактивном режиме сигнал прерывания может
прервать и выполнение команды wait.При этом csh
печатает имена и номера всех незавершенных про-
цессов.

@
@имя=выражение
@имя[индекс]=выражение

Первая форма распечатывает значения всех пере-
менных csh. Вторая форма присваивает параметру
"имя" значение "выражения". Если часть выражения
содержит символы "<", ">", "&" или "|", то она
должна быть заключена в круглые скобки (...).
Третья форма присваивает компоненту"имя" с номе-
ром "индекс" значение "выражения". "Имя" и его
компонент с номером "индекс" должны существо-
вать.

ВНУТРЕННИЕ ПЕРЕМЕННЫЕ:

argv Определяет значения параметров csh. К ней приме-
нимы подстановки позиционных параметров (напри-
мер, "$1" заменяется на "$argv[1]").

child Номер процесса.Выводится при запуске параллель-
ного процесса. По завершении процесса значение
переменной сбрасывается (unset).

echo Устанавливается, если в командной строке указы-


91
АПК 00210-01 33 01-4

вается флаг "-х". Вызывает печать каждой команды
и ее параметров перед выполнением. Все расшире-
ния выполняются перед выводом.

history
Определяет размер списка предшествующих команд.
Слишком большое значение переменной может при-
вести к нехватке памяти. Оптимальное число - 22
строки.

home Определяет имя регистрационного справочника
пользователя.

ignoreeof
Предотвращает случайное завершение csh при при-
еме сигнала "конец файла" <CTRL/D>.

mail Содержит имена файлов, которые проверяются ин-
терпретатором csh на наличие почты после завер-
шения каждой команды.

noclobber
Устанавливает защиту файлов от случайного разру-
шения и обеспечивает существование файлов вывода
при использовании конструкции ">>".

noglob
Запрещает расширение имен файлов.

nonomatch
Если расширение имен файлов не соответствует ни

92
АПК 00210-01 33 01-4

одному из существующих файлов, то при установке
данной переменной возвращается исходный образец.
Однако, если исходный образец неверен (например,
"есно ["), то возникает ошибка.

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

prompt
Определяет строку-приглашение интерпретатора для
ввода команд. Если в этой строке присутствует
указатель "!", которому не предшествует символ
"
Стандартными значениями являются "%" - для обыч-
ного пользователя и "#" - для суперпользователя.

shell Если командный файл является выполняемым (имеет-
ся бит "x") и начинается с символа "#", то он
выполняется интерпретатором csh.Если символ "#"
отсутствует - интерпретатором sh. Переменная
shell определяет файл, который должен выполнять
интерпретатор csh.

status
Определяет код завершения последней команды (0 -
при успешном выполнении команды, 1 - при неус-
пешном).

time Хронометрирует команды, если их действие продол-
жалось более указанного времени.

93
АПК 00210-01 33 01-4

verbose
Устанавливается флагом "-v" и вызывает распечат-
ку каждой командной строки перед ее выполнением.

ФЛАГИ CSH:

-c Считать команду из единственного параметра, ука-
занного сразу после "-c". Все остальные
параметры размещаются в переменной argv;

-e Прекратить работу csh, если любая вызванная ко-
манда выполнена неуспешно или если код заверше-
ния команды не равен нулю;

-f Запретить чтение файла ".cshrc" для обеспечения
более быстрого запуска интерпретатора csh;

-i Устанавливает интерактивный режим работы ин-
терпретатора;

-n Осуществляет только синтаксическую проверку
команд;

-s Считывать входную информацию из стандартного
файла ввода;

-t Считывать и выполнять только одну командную
строку. Эта строка может содержать в конце
символ продолжения строки "

-v Вызывает установку переменной verbose, в резуль-
тате чего вводимые команды распечатываются после


94
АПК 00210-01 33 01-4

подстановки предшествующих команд;

-V Вызывает установку переменной verbose перед вы-
полнением файла ".cshrc";

-x Вызывает распечатку команд перед их выполнением;

-X Устанавливает флаг "-x" при интерпретации файла
".cshrc".

ОБРАБОТКА СИГНАЛОВ:

Интерпретатор команд обычно игнорирует сигналы выхода
(quit). Команды, выполняемые в фоновом режиме, обычно
игнорируют сигналы прерывания (interrupt) и выхода. В
обычном режиме эти сигналы имеют значения, наследуемые
от предыдущего процесса. Реакция csh на прерывания
может устанавливаться командой onintr. Интерпретаторы,
устанавливаемые непосредственно при регистрации поль-
зователя в системе, воспринимают сигнал завершения
(terminate); в остальных случаях состояние сигнала
прерывания передается из текущего процесса в порожда-
емый. Во время считывания файла ".logout", сигналы
прерывания не воспринимаются.

ФАЙЛЫ:
^/.cshrc считывается csh в начале
выполнения.
^/.login считывается csh после ".cshrc"
при регистрации.
^/.logout считывается csh при выходе.


95
АПК 00210-01 33 01-4

/bin/sh стандартный shell для командных
файлов, которые начинаются не с
"#".
/tmp/sh* временный файл для "<<".
/dev/null источник для пустого файла.
/etc/passwd регистрационный справочник для
"^имя".

ОГРАНИЧЕНИЯ:
Слова не могут быть длинее, чем 512 символов. Коли-
чество символов в параметрах зависит от системы.
Предел составляет от 512 до 5120 символов. Количество
параметров команды, включающих расширения имен файлов,
ограничено 1/6-ой числа символов, разрешенных в списке
параметров. При подстановке команд количество подстав-
ляемых символов не должно превышать числа, указанного
в списке параметров. Для предотвращения зацикливания
csh ограничивает количество подстановок псевдонимов в
одной строке до 20-ти.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
sh, environ.

ЗАМЕЧАНИЯ:
Команды управления должны подвергаться грамматическому
разбору, а не распознаваться в качестве встроенных
команд. Это позволило бы размещать их в любом месте,
об'единять с помощью символа "|", а также использовать
с метаобозначениями "&" и ";".

96
АПК 00210-01 33 01-4

Команды, содержащиеся внутри циклов с подсказкой "?",
не помещаются в список предшествующих команд.

Должна существовать возможность использования модифи-
каторов ":" при выводе подстановок команд. В макровы-
зовах "$" должно допускаться более одного модификатора
":".

Некоторые команды не должны изменять значения перемен-
ной status, иначе она будет так часто меняться, что
может оказаться почти бесполезной. Установка бита 0200
в переменной status при ненормальном завершении свиде-
тельствует об ошибке.

Чтобы сохранить возможность восстановления после не-
удачного выполнения команд ехес, новая команда насле-
дует несколько открытых файлов, отличных от стан-
дартных файлов ввода, вывода и диагностических сообще-
ний. Если файлы ввода/вывода заданы и новая команда не
закрывает их, то некоторые файлы напрасно остаются
открытыми.





97
АПК 00210-01 33 01-4

ИМЯ:
ctags - построение файла ссылок для программ на Си

ФОРМАТ:
ctags [-auw] файл ...

ОПИСАНИЕ:
Команда ctags создает таблицу ссылок (файл с именем
tags) для программ на языке Си, записанных в указанных
файлах. Файл ссылок содержит указания о местонахожде-
нии определенных об'ектов (в данном случае - функций)
в группе файлов. Каждая строка файла ссылок содержит:
имя функции, имя файла (в котором она определена), ре-
гулярное выражение, используемое для поиска определе-
ния функции. Эти данные приводятся в отдельных полях
строки и разделяются пробелами или символами табуля-
ции.

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

-a Приводит к тому, что результат дописывается в
файл tags;

-x В этом режиме ctags выдает для каждой функции ее
имя, номер строки в которой она определена, имя
файла и содержимое строки с определением данной
функции. Результат выдается в стандартный файл
вывода;

-v Получение списка имен функций с указанием стра-
ниц на которых они определены (предполагается,


98
АПК 00210-01 33 01-4

что страница содержит 64 строки);

-u Вызывает обновление признаков для указанных
файлов, т.е. все ссылки на них удаляются, и к
файлу добавляются новые значения. Подразумевает-
ся задание ключа "-a";

-w Подавляет предупредительную диагностику.

Имя головной программы (main) обрабатывается особым
образом. Вместо имени функции создается некоторое ус-
ловное имя, которое формируется путем добавления "M" к
имени файла и удаления суффикса ".c", если он имеется,
а также удаления первых компонентoв полного имени. Это
позволяет использовать ctags в каталогах с более, чем
одной программой.

ФАЙЛЫ:
tags выходной файл ссылок.







99
АПК 00210-01 33 01-4

ИМЯ:
date - печать даты.

ФОРМАТ :
date

ОПИСАНИЕ:
Выдается текущая дата и время в виде ггммддччмм. Поле
"гг" задает последние две цифры года, "мм" - месяц,
"дд" - день, "чч" - час (по 24-часовой системе), вто-
рое "мм" задает минуты.

ФАЙЛЫ
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
utmp









100
АПК 00210-01 33 01-4

ИМЯ:
dc - настольный калькулятор.

ФОРМАТ:
dc [файл]

ОПИСАНИЕ:
Представляет собой пакет для выполнения арифметических
операций с произвольной точностью. Обычно он оперирует
с десятичными целыми числами, однако можно задавать
входное и выходное основания системы счисления и коли-
чество обрабатываемых дробных цифр. С точки зрения об-
щей структуры dc представляет собой стековый калькуля-
тор (с использованием обратной польской записи). Если
задан параметр, ввод осуществляется из указанного
файла (до тех пор, пока он не закончится), а затем -
из стандартного файла ввода. Распознаются следующие
конструкции:

число значение числа помещается в стек. Число
представляет собой непрерывную строку цифр 0-9.
Ему может предшествовать символ подчеркивания
"_", который служит для ввода отрицательных
чисел. Числа могут содержать десятичную точку;

+ - / * % ^
Два верхних значения стека складываются (+), вы-
читаются (-), умножаются (*), делятся (/), опре-
деляется остаток (%) или возводятся в степень
(^). Два этих значения выталкиваются из стека;


101
АПК 00210-01 33 01-4

на их место в стеке помещается результат. Дроб-
ная часть в показателе стека игнорируется;

sx Вершина стека извлекается и запоминается в ре-
гистре с именем "x", где в качестве "x" может
использоваться любой символ. Если буква S заг-
лавная, "x" рассматривается как стек, и в него
помещается данное значение;

lx Значение регистра "x" помещается в стек. Содер-
жимое регистра "x" не изменяется. Начальные зна-
чения всех регистров нулевые. Если буква L заг-
лавная, регистр "x" рассматривается как стек, и
его верхнее значение помещается в основной стек;

d Верхнее значение стека удваивается;

p Верхнее значение стека распечатывается. Верхнее
значение остается неизменным. "P" рассматривает
вершину стека как строку символов КОИ-8, удаляет
и распечатывает эту строку;

f Распечатываются все значения, находящиеся в сте-
ке и в регистрах;

q Производится выход из программы. При выполнении
строки уровень рекурсии уменьшается на два. Если
буква Q заглавная, из стека извлекается верхнее
значение и уровень выполнения строки Изменяется
на это значение;

102
АПК 00210-01 33 01-4

x Рассматривает верхний элемент стека как строку
символов и выполняет ее как строку команд dc;

X Заменяет число в вершине стека на его масштабный
множитель;

[...] Помещает строку символов КОИ-8 в скобках в вер-
шину стека;

<x >x =x
Верхние два элемента стека извлекаются и сравни-
ваются. Если они удовлетворяют указанному отно-
шению, выполняется регистр "x";

v Заменяет верхний элемент стека его квадратным
корнем. Существующая дробная часть параметра
учитывается, иначе масштабный множитель игнори-
руется;

! Остальная часть строки рассматривается как ко-
манда системы ДЕМОС;

c Из стека извлекаются все значения;

i Верхнее значение стека извлекается и использует-
ся в качестве основания чисел для последующего
ввода. Заглавное I помещает в вершину стека
входное основание;

o Верхнее значение стека извлекается и использует-
ся в качестве основания чисел для последующего
вывода. Заглавное O помещает в вершину стека вы-


103
АПК 00210-01 33 01-4

ходное основание;

k Извлекается верхнее значение стека, которое ис-
пользуется в качестве неотрицательного масштаб-
ного множителя: соответствующее количество пози-
ций печатается при выводе и обрабатывается при
умножении, делении и возведении в степень. Вза-
имовлияние масштабного множителя, входного осно-
вания и выходного основания будут иметь смысл,
если все они изменяются одновременно;

z Уровень стека помещается в стек. Заглавное Z за-
меняет число в вершине стека его длиной;

? Из источника ввода (обычно терминал) вводится и
выполняется входная строка;

; : Используется командой bc для операций с массива-
ми.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
bc - препроцессор для dc, обеспечивающий инфиксное
представление и напоминающий язык Си, синтаксис кото-
рого реализует функции и удобные структуры управления
для программ.

Имеется отдельное описание dc.

ДИАГНОСТИКА:
"x is unimplemented" ("x не помещается"), где x -
восьмеричное число.

104
АПК 00210-01 33 01-4

"stack empty" ("стек пуст"), если в стеке недостаточно
элементов для выполнения требуемых функций.

"out of space" ("не хватает места"), когда исчерпан
список свободного пространства (слишком много цифр).

"out of headers" ("не хватает заголовков"), когда од-
новременно обрабатывается слишком много чисел.

"out of pushdown" ("исчерпан стек"), если в стеке
слишком много элементов.

"Nesting Depth" ("глубина вложения"), если слишком
много уровней вложенного выполнения.










105
АПК 00210-01 33 01-4

ИМЯ:
dcon - отладчик

ФОРМАТ:
dcon файл [ имя списка ]

ОПИСАНИЕ:
Dcon является отладчиком ДЕМОС. Команда позволяет как
проверять содержимое файлов, так и динамически тести-
ровать программу. Обычно, когда используется операнд
"файл", проверяется файл или программа (выходной фор-
мати производится дамп памяти с ошибкой или распечатка
нужного файла (находящегося, например на диске).

"Имя списка" - используется, если файл содержит сим-
вольную таблицу. Если этот операнд отсутствует, табли-
ца символов выбирается из самого файла, имя которого
использовано в команде. Если нет возможности найти
список имен, dcon может быть использована, но уже без
возможности работы с символьными данными.

Далее приводится краткое описание вариантов использо-
вания команд dcon. Большинство команд dcon включают
адреса операндов и режимы печати. Адреса выражений,
которые могут быть использованы, приведены ниже:

source_name
адрес имени-источника (source_name), определен-
ного в программе;

;r0...;r15


106
АПК 00210-01 33 01-4

просмотр регистров с 0 по 15;

;fr0...;fr6
просмотр содержимого регистров с плавающей
точкой 0,2,4,6;

local_name
имя отладчика, начинается с "#";

number
восьмеричный, десятичный, шестнадцатеричный
номер использования "С" вводного формата (Оn, n,
Oxn);

. размещение наиболее "свежих" результатов тести-
рования;

.. размещение текущей команды;

$ конец файла;

expr обычное выражение, исключающее использование
"//" в качестве разделителя;

name=expr
об'ем памяти для expr;

function:variable
относится к локальной переменной (variable) в
функции (function);

*expr косвенное выражение через expr;

107
АПК 00210-01 33 01-4

enter(name)
начало имени функции;

exit(name)
конец имени функции;

Содержимое адресов, представленных в выражениях, выво-
дится согласно следующим режимам. Режим вывода специ-
фицируется двумя параметрами: длиной символов и формой
представления.

Длины могут быть представлены в виде:

-b для адресуемого байта;

-h для адресуемого полуслова;

-w для адресуемого слова;

-l для адресуемого двойного слова;

-a для адреса самого выражения.

Режимы вывода:

-d для десятичных данных;

-o для восьмеричных данных;

-x для шестнадцатеричных данных;

-c для символьных данных;

-s для строки символов (не указателей);

108
АПК 00210-01 33 01-4

-i для мнемоники команды;

-ix для режимов i и x;

-v для символов, значение которых связано с адре-
сом.

Могут быть также следующие варианты:

(new-line)
выводит ".+длина печати";

expr1,expr2[print-option]
печатает размещение выражений от expr1 до expr2;

+expr[print-option]
выводит ".+выражение";

-expr[print-option]
выводит ".-выражение";

?[print-option]
выводит "след" стока;

*[print-option]
выводит '*';

;psw[print-option]
выводит psw;

!ДЕМОС-command
посылает команды ДЕМОС интертритатору shell;

{command_list}


109
АПК 00210-01 33 01-4

список команд;

;if(expr)command
если выражение имеет ненулевое значение, command
выполняется;

;bp expr[command_command][/*comment]
точка прерывания в выражении;

;macro name(arg)command
определяет локальное имя макроопределения, кото-
рое, когда используется, подставляет значение
аргумента (arg);

;go [arg1 arg2...]
начинает выполнение программы, используя указан-
ные аргументы;

;cont [expr]
продолжает выполнение выражения (expr);

;brks выводит текущие точки прерывания;

;clr [expr]
расставляет точки прерывания в выражении;

;quit эквивалентно ЕОТ (выйти из отладчика);

;do file
взять команды из файла "file";

;out [file]
начать косвенный вывод файла "file";


110
АПК 00210-01 33 01-4

;save [expr][/*comment]
осуществляет непрерывное изменениe выражения.
Если выражение не специфицировано, все изменения
происходят непрерывно. Изменения, дата, время,
имя модификации записываются в файл file.cmt.

;rst [expr]
сохраняет значение в expr относительно его зна-
чений на входе команды dcon. Если expr не указа-
но, сохраняется размещение изменений;

;copy file
подобно ;save исключает сохранение изменяемого
файла в file;

;ss [n[command]]
один шаг программы, где "n" -номер команды,
после которой необходимо остановить программу.








111
АПК 00210-01 33 01-4

ИМЯ:
dd - преобразовать и скопировать файл.

ФОРМАТ:
dd [ключ = значение] ...

ОПИСАНИЕ:
Команда dd копирует заданный входной файл в заданный
выходной файл с возможными преобразованиями. По умол-
чанию используются стандартный файл ввода и стан-
дартный файл вывода. Может быть задан размер блока при
вводе и выводе, чтобы использовать преимущества прямо-
го физического ввода-вывода.

Параметр значение

if= Имя входного файла (по умолчанию - стандартный
файл ввода).

of= Имя выходного файла (по умолчанию - стандартный
файл вывода).

ibs=n
Устанавливает размер блока при вводе равным n байт
.

obs=n
Устанавливает размер блока при выводе равным n
байт .

bs=n
Устанавливает размер блока как для ввода, так и


112
АПК 00210-01 33 01-4

для вывода, отменяя ibs и obs. Особенно эффекти-
вен, если не задано преобразование (не требуется
создание копии).

cbs=n
Размер буфера преобразования.

skip=n
Пропускает n входных записей перед началом копиро-
вания.

files=n
Пропускает n входных файлов перед началом копиро-
вания.

seek=n
Пропускает n записей от начала выходного файла
перед копированием.

count=n
Копирует только n входных записей.

conv=ascii
Выполняет преобразование из кода ДКОИ в код КОИ-8.

conv=ebcdic
Выполняет преобразование из кода КОИ-8 в код ДКОИ.

conv=ibm
Несколько отличающееся преобразование КОИ-8 в
ДКОИ.

113
АПК 00210-01 33 01-4

conv=lcase
Преобразует алфавитные символы в нижний регистр.

conv=ucase
Преобразует алфавитные символы в верхний регистр.

conv=swab
Переставляет каждую пару байтов.

conv=noerror
Не прекращает обработку при обнаружении ошибки
чтения.

conv=sync
Дополняет каждую входную запись до размера ibs.

conv=...,...
Несколько преобразований, разделенных запятой.

Там, где определяются размеры, предполагается указание
числа байтов. Число может оканчиваться символами "k",
"b" или "w", что означает умножение на 1024,4096 или 2
соответственно.Для обозначения произведения пара чисел
может разделяться символом "x".

Параметр "cbs=n" используется только тогда, когда за-
даны преобразования ascii или ebcdic. В первом случае
cbs символов помещаются в буфер преобразования, преоб-
разуются в код КОИ-8 и перед помещением этой строки в
выходной файл заключительные пробелы отбрасываются и
добавляется символ новой строки. Во втором случае сим-

114
АПК 00210-01 33 01-4

волы КОИ-8 считываются в буфер преобразования, преоб-
разуются в код ДКОИ и дополняются пробелами, чтобы по-
лучить выходную запись размером cbs.

После завершения dd сообщает количество полных и не-
полных введенных и выведенных блоков.

ПРИМЕР:
Следующая команда переписывает ленту ДКОИ, которая со-
держит по десять 80-байтных образов карт ДКОИ в блоке,
в файл с именем x:

dd if=/dev/mt580 of=х ibs=800 cbs=80 conv=ascii,lcase

Обратите внимание на использование небуферизированного
обмена с магнитной лентой (rmt). Команда dd особеннно
подходит для небуферизированного ввода-вывода, так как
позволяет считывать и записывать записи произвольного
размера.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
cp, tr

ДИАГНОСТИКА:
"f+p records in (out)" ("f+p записей введено (выведе-
но)"): количество полных и неполных считанных (запи-
санных) записей.

ЗАМЕЧАНИЯ:
Символы новой строки вставляются только при преобразо-
вании в код КОИ-8.Дополнение выполняется только при


115
АПК 00210-01 33 01-4

преобразовании в код ДКОИ. Это следовало бы сделать
отдельными параметрами.














116
АПК 00210-01 33 01-4

ИМЯ:
ddutok - перекодировка из кода "u-cod" МНОС.

ФОРМАТ:
ddutok файл ...

ОПИСАНИЕ :
Команда ddutok последовательно перекодирует каждый
"файл" из кода "u-cod" и записывает результат под
прежним именем. Команда работает таким образом, что
файлы, содержащие нетекстовые символы или не содержа-
щие русских букв остаются неизмененными.

"u-cod" - это нестандартная кодировка, отличающаяся от
КОИ-8 тем, что русские буквы упорядочены по алфавиту,
строчные буквы начинаются с кода 0340, прописные -
0300.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
dd






117
АПК 00210-01 33 01-4

ИМЯ
demsend - перфорация данных для системы ДЕМОС.

ОПИСАНИЕ
demsend называется загрузочный модуль программы на
языке pl/1. Результатом выполнения этой программы в
среде ОС ЕС или ПДО является перфорация файла вирту-
альным перфокарточным устройством вывода с направлени-
ем перфорации на виртуальный перфокарточный ввод ВМ
ДЕМОС. Чтение с перфокарточного ввода и размещение в
файле ДЕМОС перфорированных данных выполняет утилита
vmread. Управляющие параметры программы dемsend запи-
сываются в поле РАRМ оператора EXEC и имеют состав
аналогичный составу заголовка утилиты vmread:

/modes; userid; destfile.

Где

modes поле управляющих ключей vmread;

userid
имя пользователя ДЕМОС

destfile
имя файла ДЕМОС

Следующий пример показывает операторы ЯУЗ ОС ЕС для
выполнения программы demsend:

//name job ...

118
АПК 00210-01 33 01-4

//*route punch mode.dem

//senddem exec pgm=demsend,parm='/s;petr1;blah'

//steplib dd dsn=engtools.public.load,disp=shr

//in dd dsn=petr1.test.blah,disp=old,dcb=(...)

//out dd dcb=(recfm=fb,lrecl=80,blksize=80),

// sysout=b

Для получения эффекта работы программы demsend в среде
системы ПДО имеется файл ПДО названия demsend module и
командная процедура demsend exec, обеспечивающие поль-
зовательский интерфейс с перфорацией.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ
vmread, send







119
АПК 00210-01 33 01-4

ИМЯ:
deroff - удалить конструкции pif, troff, tbl и eqn.

ФОРМАТ:
deroff [-w] файл ...

ОПИСАНИЕ:
Команда deroff поочередно считывает каждый файл и уда-
ляет все командные строки pif, troff, конструкции с
обратной косой чертой, макроопределения, конструкции
eqn (между строками ".eq" и ".en" или между ограничи-
телями), а также описания таблиц, и записывает остаток