Man pages на русском

         

CONV(3C)


НАЗВАНИЕ

conv: toupper, tolower, _toupper, _tolower, toascii - преобразование символов

СИНТАКСИС

#include <ctype.h>

int toupper (c) int c;

int tolower (c) int c;

int _toupper (c) int c;

int _tolower (c) int c;

int toascii (c) int c;

ОПИСАНИЕ

Допустимые значения аргумента функций toupper и tolower совпадают с диапазоном значений функции : целые числа от -1 до 255. Если аргументом функции toupper является малая буква, то результатом будет соответствующая большая буква. Если аргументом функции tolower является большая буква, то результатом будет соответствующая малая буква. Остальные допустимые аргументы возвращаются без изменений.

Макросы _toupper и _tolower выполняют те же действия, что и функции toupper и tolower, но имеют более узкий диапазон допустимых значений аргумента и выполняются быстрее. Аргументом _toupper может быть только малая буква; результатом является соответствующая большая буква. Аналогично, аргументом _tolower может быть только большая буква; результатом является соответствующая малая буква. Если аргумент не принадлежит диапазону допустимых значений, то результат будет непредсказуемым.

Функция toascii обнуляет у аргумента все биты, не являющиеся частью стандартного ASCII-символа; эта функция предназначается для достижения совместимости с другими системами.

СМ. ТАКЖЕ

, .

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



CU(1C)


НАЗВАНИЕ

cu,tip - вызов другой UNIX-системы

СИНТАКСИС

cu [-sскорость_обмена] [-lлиния] [-h] [-t] [-d] [-o] [-e] [-n] номер_телефона cu [-sскорость_обмена] [-h] [-d] [-o] [-e] -lлиния cu [-h] [-d] [-o] [-e] имя_системы

ОПИСАНИЕ

Команда cu вызывает другую UNIX-систему, терминал или, возможно, не-UNIX-систему. Она поддерживает интерактивное взаимодействие с возможностью передачи текстовых файлов.

Допустимые опции:

-sскорость_обмена

Указание скорости обмена (300, 1200, 2400, 4800, 9600 бод). Подразумеваемое значение (обозначается Any) зависит от порядка строк в файле /usr/lib/uucp/Devices. Большинство модемов обеспечивают скорость 300 или 1200 бод. При прямом подключении можно задавать скорости большие, чем 1200 бод.

-lлиния

Указание имени устройства, которое будет использоваться в качестве коммунникационной линии. Служит для отмены поиска линии, имеющей подходящую скорость. При использовании опции -l без -s скорость обмена берется из файла /usr/lib/uucp/Devices. Если же эти опции используются одновременно, то cu просматривает файл /usr/lib/uucp/Devices для проверки - соответствует ли требуемая скорость характеристикам линии. Если да, то выполняется соединение с требуемой скоростью. В противном случае выдается сообщение об ошибке, и вызов не выполняется. Указываемое устройство, как правило, является подсоединяемой напрямую асинхронной линией (то есть /dev/ttyab); в этом случае задавать номера_телефона не нужно. Указанное устройство не обязано находиться в каталоге /dev. Если устройство ассоциировано с автоответчиком, то номер_телефона должен быть задан обязательно. При наличии опции -l или -s не стоит использовать опцию имя_системы вместо номера_телефона: к желаемому результату это не приведет (см. ниже имя_системы).

-h Эмуляция локального эхоотображения при вызове других систем, которые ожидают, что терминал находится в полудуплексном режиме.

-t Используется при вызове ASCII-терминала, подключенного через автоответчик. Устанавливается режим преобразования возврата каретки в пару (возврат каретки, переход к новой строке).

-d Выводить диагностическую трассировку.

-o Байты данных, пересылаемые на удаленную систему, дополняются до нечетности.

-e Байты данных, пересылаемые на удаленную систему, дополняются до четности.

-n Для большей секретности номер телефона запрашивается у пользователя, а не вводится из командной строки.

номер_телефона


При использовании автоматического номеронабирателя этот аргумент обозначает телефонный номер со знаками равенства в тех местах, где нужно дождаться ответного сигнала и знаками минус в местах, где надо сделать задержку на 4 секунды.

имя_системы

Имя_системы в смысле uucp может быть использовано вместо номера_телефона. В этом случае имя соответствующей прямой линии или номер_телефона будет получено из файла /usr/lib/uucp/Systems. Замечание: опцию имя_системы не следует использовать совместно с опциями -l и -s, так как cu произведет соединение первым доступным способом, игнорируя указание линии и скорости_обмена.

После установления связи cu разделяется на два процесса: передающий процесс читает данные со стандартного ввода и все строки, не начинающиеся с символа ~, передает удаленной системе; принимающий процесс получает данные от этой системы и, за исключением строк, начинающихся с символа ~, передает на стандартный вывод. Обычно автоматически поддерживается протокол Xon/Xoff для контроля ввода от удаленной системы, чтобы избежать переполнения буфера. Строки, начинающиеся с символа ~, трактуются по-особому.

Передающий процесс интерпретирует следующие команды, выданные пользователем:

~. Завершить диалог с удаленной системой.

~! Выйти в shell локальной системы.

~!команда...

Выполнить команду на локальной системе (посредством sh -c).

~$команда...

Выполнить команду локально и направить ее вывод на удаленную систему.

~%cd Сменить каталог на локальной системе. Примечание: команда выполняется специально запущенным shell'ом, что, возможно, не является желательным.

~%take откуда [куда]

Копировать файл откуда с удаленной системы в файл куда на локальной системе. Если часть куда опущена, то используется аргумент откуда.

~%put откуда [куда]

Копировать файл откуда с локальной системы в файл куда на удаленной системе. Если часть куда опущена, то используется аргумент откуда.

При работе обеих команд, %take и %put, по мере передачи блоков на терминал выводятся последовательные цифры.

~~строка


DIRECTORY(3X)


НАЗВАНИЕ

directory: opendir, readdir, telldir, seekdir, rewinddir, closedir - операции над каталогами

СИНТАКСИС

#include <sys/types.h>

#include <dirent.h>

DIR *opendir (filename) char *filename;

struct dirent *readdir (dirp) DIR *dirp;

long telldir (dirp) DIR *dirp;

void seekdir (dirp, loc) DIR *dirp; long loc;

void rewinddir (dirp) DIR *dirp;

void closedir (dirp) DIR *dirp;

ОПИСАНИЕ

Функция opendir открывает каталог с именем filename и связывает с ним поток каталога. Opendir возвращает в качестве результата указатель, который используется в последующих операциях для идентификации потока каталога. Пустой указатель возвращается, если файл filename не доступен или не является каталогом, либо, если команда malloc(1M) не может выделить достаточного об ема памяти для структуры типа DIR или для буферов.

Функция readdir выдает указатель на следующий активный элемент каталога. Указатели на неактивные элементы каталога не выдаются. При достижении конца каталога или при выявлении некорректной позиции в каталоге возвращается пустой указатель.

Функция telldir выдает текущую позицию в указанном потоке каталога.

Функция seekdir устанавливает позицию для последующей операции readdir над потоком каталога. Данная позиция совпадает с той, которая была получена в результате выполнения операции telldir, вычислившей loc. Значения, которые возвращает telldir, корректны только в том случае, если каталог не сжимался и не расширялся. Такая проблема не возникает в случае версии 5, но может возникнуть для некоторых других типов файловых систем.

Операция rewinddir переустанавливает в начало позицию в указанном потоке каталога.

Операция closedir закрывает указанный поток каталога и освобождает структуру DIR.

При выполнении перечисленных операций могут возникнуть следующие ошибки:

opendir:

[ENOTDIR] Компонент маршрутного имени filename не является каталогом. [EACCES] Для компонента маршрутного имени filename отсутствует право на поиск. [EMFILE] Будет превышено максимально допустимое число описателей файлов. [EFAULT] Аргумент filename указывает за пределы отведенного процессу адресного пространства.


readdir:

[ENOENT] Текущая позиция каталога не соответствует корректному элементу. [EBADF] Описатель файла, определенный аргументом dirp, в данный момент некорректен. Возможная причина - поток был закрыт.

telldir, seekdir и closedir:

[EBADF] Описатель файла, определенный аргументом dirp, в данный момент некорректен. Возможная причина - поток был закрыт.

ПРИМЕР

Приведем фрагмент программы для поиска в каталоге элемента name:

dirp = opendir ("."); while ((dp = readdir (dirp)) != NULL) if (strcmp (dp->d_name, name) == 0) { closedir (dirp); return FOUND; } closedir (dirp); return NOT_FOUND;

СМ. ТАКЖЕ

, .

ПРЕДОСТЕРЕЖЕНИЯ

Rewinddir реализован как макрос, поэтому к нему нельзя применить операцию вычисления адреса функции.
Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


SINH(3M)


НАЗВАНИЕ

sinh, cosh, tanh - гиперболические функции

СИНТАКСИС

#include <math.h>

double sinh (x) double x;

double cosh (x) double x;

double tanh (x) double x;

ОПИСАНИЕ

Функции sinh, cosh и tanh возвращают, соответственно, значения гиперболического синуса, косинуса и тангенса своего аргумента.

СМ. ТАКЖЕ

.

ДИАГНОСТИКА

Функции sinh и cosh возвращают значение HUGE (sinh может выдать -HUGE при отрицательных x), если представление результирующего значения приводит к переполнению. Переменной errno присваивается значение ERANGE.

Изложенная процедура обработки ошибок может быть изменена посредством функции .

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TABS(1)


НАЗВАНИЕ

tabs - установка позиций табуляции

СИНТАКСИС

tabs [разметка] [-Tтип_терминала] [+mкол]

ОПИСАНИЕ

Посредством команды tabs устанавливают позиции табуляции пользовательского терминала в соответствии с заданной разметкой. Предыдущие установки отменяются. Терминал должен допускать переустановку позиций табуляции.

Аргументы команды tabs имеют следующий смысл:

разметка

Для аргумента разметка допустимы четыре типа спецификаций, описанных ниже: именованная (-имя), регулярная (-n), произвольная (n1,n2,...) и файловая (--файл). Если разметка не задана, то по умолчанию применяется значение -8 - "стандарт" табуляций системы UNIX. Номер самой левой колонки равен 1. Заметим, что для программы tabs колонка 1 всегда является самой левой колонкой терминала, даже если у терминала они нумеруются с 0, как например на DASI 300, DASI 300s и DASI 450.

-имя

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

-a 1,10,16,36,72
Ассемблер, IBM S/370, первый формат. -a2 1,10,16,40,72
Ассемблер, IBM S/370, второй формат. -c 1,8,12,16,20,55
Кобол, обычный формат. -c2 1,6,10,14,49
Кобол, первый компактный формат. -c3 1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67
Кобол, второй компактный формат. -f 1,7,11,15,19,23
Фортран. -p 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57, 61
ПЛ/1. -s 1,10,55
Снобол. -u 1,12,20,44
Ассемблер, UNIVAC 1100.

-n При регулярной разметке позиции табуляции устанавливаются в колонках 1+n, 1+2*n и т.д. Особое значение имеет разметка -8: для системы UNIX она является стандартной. Другим специальным случаем является значение -0, что означает полное отсутствие табуляций.

n1,n2,...

При произвольной разметке через запятую задается возрастающая последовательность чисел не более чем из 40 элементов. Если перед любым числом (кроме первого) стоит знак плюс, то это число интерпретируется как смещение, прибавляемое к предыдущей величине. Таким образом, разметки 1,10,20,30 и 1,10,+10,+10 считаются одинаковыми.

--файл

Если указан файл, то команда tabs в поисках спецификации формата просматривает первую строку файла [см. ]. Если спецификация найдена, то позиции табуляции устанавливаются в соответствии с ней, в противном случае применяется регулярная разметка -8.


-Tтип_терминала

Команде tabs нужно знать тип терминала для установки позиций табуляции и сдвиге границы. Тип_терминала - это имя из списка . Если данная опция не употребляется, то tabs использует значение переменной окружения TERM. Если переменная TERM не определена в окружении [см. ], то применяется последовательность команд, работающая для многих терминалов.

+mкол

Для некоторых терминалов можно задать левую границу табуляции. При этом колонка кол+1 становится левой границей, а все позиции табуляции сдвигаются на кол вправо. Если +m использован без величины кол, то подразумевается значение 10. Нормальную (самую левую) границу на большинстве типов терминалов можно получить с помощью +m0. Граница в большинстве случаев переустанавливается только при явном задании опции +m.

Если опции -T и +m встречаются в командной строке несколько раз, используется последнее вхождение.

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

СМ. ТАКЖЕ

, .

, environ(4), в Справочнике программиста.

ДИАГНОСТИКА

illegal tabs

При произвольной разметке нарушена упорядоченность позиций табуляции.

illegal increment

При произвольной разметке задано нулевое или отрицательное смещение.

unknown tab code

Неизвестное имя разметки.

can't open

Не удается открыть файл со спецификацией формата.

file indirection

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

ПРИМЕЧАНИЯ

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

Команда tabs очищает не более 20 позиций табуляции (на терминалах, использующих длинные последовательности команд), но может установить 64.

ПРЕДОСТЕРЕЖЕНИЯ

Используемая в команде tabs разметка отличается от спецификаций команды . Например, tabs -8 устанавливает позиции табуляций через 8 колонок, тогда как newform -i-8 означает, что табуляции установлены в каждую восьмую позицию.

СЮРПРИЗЫ

Следует иметь в виду, что на некоторых типах терминалов установка позиций табуляции может иметь побочный эффект, например сдвиг левой границы.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TAIL(1)


НАЗВАНИЕ

tail - выдача хвостовой части файла

СИНТАКСИС

tail [+][-][число][l][b][c][f] [файл]

ОПИСАНИЕ

Команда tail копирует указанный файл на стандартный вывод, начиная с определенного места. Если файл не задан, то используется стандартный ввод.

Копирование начинается с позиции на расстоянии +число от начала или -число от конца исходного файла. Если число не указано, то принимается значение, равное 10. Должен быть указан ровно один из знаков + или -. Расстояние задается в строках, блоках или символах в соответствии с опцией l, b или c, поставленной после числа. Если единица измерения не задана, то расстояние измеряется в строках; разумеется, нельзя указывать больше одной единицы измерения.

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

tail -f f1

выдаст последние десять строк файла f1, за которыми последуют строки, добавленные к файлу f1 в промежуток времени между запуском и терминированием программы tail. В качестве другого примера рассмотрим команду

tail -15cf f2

которая выдаст последние 15 символов файла f2, за которыми последуют строки, добавленные к файлу f2 в промежутке между запуском и терминированием tail.

СМ. ТАКЖЕ

.

СЮРПРИЗЫ

При адресации относительно конца файла информация накапливается в буфере, размер которого ограничен. В случае превышения размера выдаются последние 4096 байт.

В случае символьных специальных файлов может встречаться различного рода аномальное поведение.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TALK(1)


ИМЯ

talk - разговор с другим пользователем

СИНТАКСИС

talk person [ ttyname ]

ОПИСАНИЕ

talk - это программа визуальной связи, которая копирует строки с Вашего терминала на терминал другого пользователя.

Если Вы хотите поговорить с кем-то на Вашей собственной машине, тогда person - это просто входное имя пользователя (login name). Если Вы хотите использовать talk с пользователем другого узла, тогда person принимает одну из следующих форм:

host!user host.user host:user user@host

хотя user@host - возможно предпочтительнее.

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

При первом вызове talk выдает сообщение:

Message from TalkDaemon@his_machine... talk: connection requested by your_name@your_machine. talk: respond with: talk your_name@your_machine

Не имеет значения, с какой машины отвечает вам получатель, пока его входное имя (login) остается тем же самым. Как только связь установлена, оба участника могут одновременно печатать, строки вывода появляются в раздельных окнах. Нажатие CTRL l вызывает распечатку экрана, в то время, как символы "стереть", "уничтожить", и "уничтожить слово" отрабатываются нормально. Для выхода просто нажмите символ "прерывания"; talk переместит курсор на дно экрана и восстановит терминал.

Разрешение использовать talk может быть запрещено или предоставлено применением команды mesg. Вначале talk разрешен. несколько команд, особенно nroff и , запрещают сообщения в целях предотвращения беспорядочного вывода. в режиме реального времени.

ФАЙЛЫ

/etc/hosts /var/run/utmp

СМ. ТАКЖЕ

, , ,

ИСТОРИЯ

Команда talk появилась в 4.2BSD.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TAPE(1)


ИМЯ

tape - программа обслуживания магнитной ленты.

СИНТАКСИС

tape command [devicefile]

ОПИСАНИЕ

Программа tape посылает команды и принимает информацию о состоянии в/из ленточной подсистемы.

Доступные команды перечислены ниже:

amount

Сообщает количество данных, обработанных при последней или текущей передаче. erase

Стирает информацию с ленты в кассете. Также подтягивает. reset

Устанавливает в исходное состояние контроллер и накопитель. Чистит все флаги ошибок и возвращает ленточную систему в активное состояние. reten

Подтягивание ленты на кассете. Следует использовать периодически с целью устранения проблем, связанных с провисанием ленты. Провисание ленты может вызвать чрезмерное число ошибок при использовании ленты. rewind

Ускоренная перемотка к началу ленты. rfm

Перемотка ленты вперед к маркеру следующего файла. status

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

status: status message soft error: n underrrunns: m

status message это сообщение о текущем состоянии накопителя; наиболее типичными сообщениями о состоянии накопителя являются следующие: "no cartridge" (нет кассеты), "write protected" (защищен по записи), "beginning of tape" (начало ленты).

soft errors это число исправляемых ошибок, которые имели место при последней операции с лентой. Исправляемой ошибкой считается ошибка, которая может быть исправлена непосредственно самим накопителем или контроллером. Примером неисправляемой, "тяжелой" ошибки является попытка записи на ленту, защищенную по записи. Необходимо отметить, что если число возникающих исправляемых ошибок значительно превышает спецификацию производителя, то накопитель должен быть отремонтирован или заменен.

underruns это количество времени, которое было потрачено на остановку накопителя и его перезапуск вследствие переполнения его буфера. Это время не является признаком ошибки, но указывает на то, что данные не передавались с максимальной возможной скоростью, на которую рассчитан накопитель. Влияние данной перегрузки может быть снято перезагрузкой системы.


wfm Запись маркера файла в текущую позицию на ленте.

Команды amount и reset могут быть использованы, когда лента занята выполнением других операций. Команды erase, reten, rewind, rfm, status и wfm находятся в состоянии ожидания, пока не закончится текущая команда, и только потом начинают выполняться.

Если вы используйте ленточный накопитель, не поддерживающий режима ускоренной перемотки к началу ленты или не выполняющий команды rfm и wfm, то накопитель просто остановится после выполнения предыдущей команды, указывая на то, что могут быть выполнены следующие команды. Команда rewind может быть использована для сброса этих условий.

ФАЙЛЫ

/dev/rct0 /dev/nrct0 /dev/rct2 /dev/nrct0 /dev/rctmini

СМ. ТАКЖЕ

, , , , , .

ЗАМЕЧАНИЯ

Если вы используйте команду status, пока ленточный накопитель занят, то никакой информации выдано не будет, пока накопитель не освободится.
Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TAPE(HW)


НАЗВАНИЕ

tape - устройство кассетного стримера.

ОПИСАНИЕ

Устройство tape обеспечивает системный интерфейс к стримеру. Обычно для работы со стримером используются команды tar(1), cpio(1), dd(1) backup(1), dump(1) и restore(1).

Поддерживается одиночный стример с первичным (символьным, неблочным) интерфейсом. Существует три типа стандартных устройства стримеров. Устройства, имена которых начинаются с "r" ("raw" первичный, без обработки данных), следует использовать для выполнения большинства обычных операций, в то время как устройства, имена которых начинаются с "n" ("no rewind on hold" - без перемотки в процессе обработки), следует использовать для хранения и восстановления большого количества файлов. Устройства, имена которых начинаются с "e" (ECC - проверка и исправление ошибок) поддерживают схему восстановления из состояний с ошибками 2/64. Это означает, что два 512-байтовых блока из 64 блоков могут быть сбойными, и драйвер скорректирует ошибки. Подобная программная поддержка ECC обеспечивает высокий уровень восстановления испорченных данных.

В следующей таблице суммируются основные соглашения по наименованиям поддерживаемых стримеров:

ct0,1стример типа QIC24 unit 0,1 ct2,3стример типа QIC11 unit 0,1 ctminiкассетный стример на базе контроллера гибких дисков mt0,1двухкатушечный стример unit 0,1 1600 бит/дюйм mt2,3двухкатушечный стример unit 0,1 800 бит/дюйм mt4,5двухкатушечный стример unit 0,1 6250 бит/дюйм

Команды работы со стримером описаны в разделе tape(1).

ФАЙЛЫ

/dev/rct0 /dev/nrct0 /dev/rct2 /dev/nrct2 /dev/erct0 /dev/rctmini

ПРИМЕЧАНИЯ

После выполнения определенных операций со стримером система возвращает подсказку прежде, чем контроллер стримера завершит свои действия. Если пользователь вставит очередную ленту слишком быстро, то появится сообщение об ошибке "device busy" (устройство занято), которое не исчезнет, пока контроллер не закончит свою работу.

Для продолжительного и бесперебойного функционирования стримерной подсистемы необходимо периодически перенатягивать ленту в кассете и чистить головку стримера. Для перенатяжки ленты используйте команду tape(1).

СМ. ТАКЖЕ

backup(1), cpio(1), dd(1), dump(1), format(1), tape(1), tar(1), restore(1).

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TAPEDUMP(1)


ИМЯ

tapedump - выводит информацию с магнитной ленты в выходной файл.

СИНТАКСИС

tapedump [-a|-e][-o|-h][-btsn num] tape-device output-file

ОПИСАНИЕ

Команда tapedump выводит содержимое магнитных лент согласно установленным опциям. Опции включают преобразование входного формата представления в выходной формат, определенный пользователем, указание размеров входного и выходного блоков, а также предоставляют возможность указать, что выводимый дамп должен начинаться с определенного блока на ленте и содержать заданное число блоков.

ОПЦИИ

tape-device входное ленточное устройство. -a преобразование входного формата EBCDIC в выходной формат ASCII. -e преобразование входного формата ASCII в выходной формат EBCDIC. -o вывод на экран дисплея выходного файла в восьмеричном формате. -h вывод на экран дисплея выходного файла в шестнадцатиричном формате. -b num пропуск n-входных записей перед началом вывода содержимого. -t num указание, с какого ленточного файла начать формирование дампа, где num - номер набора файлов на ленте. -s num определяет адрес блока на ленте, с которого начать вывод. -n num определяет число блоков, составляющих дамп. output-file имя выходного файла; по умолчанию используется стандартное устройство вывода.

ПРИМЕРЫ

tapedump -b400 -h/dev/rct0/tmp/hexdump

Эта команда читает ленту, начиная с блока 400, и записывает результат в шестнадцатиричном формате в файл с именем /tmp/hexdump, определенный пользователем.

tapedump -a/dev/rct0

Эта команда читает ленту в формате EBCDIC и преобразует выводимый файл в формат ASCII.

СМ. ТАКЖЕ

, , , , .

ЗАМЕЧАНИЯ

В качестве выходного файла можно задать другое ленточное устройство.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TAR(1)


НАЗВАНИЕ

tar - обслуживание файлового архива на магнитной ленте

СИНТАКСИС

/etc/tar [-]c[v][w][f][b] архив блок файл ... /etc/tar [-]r[v][w][f][b] архив блок [файл ...] /etc/tar [-]t[v][f] архив /etc/tar [-]u[v][w][f][b] архив блок [файл ...] /etc/tar [-]x[m][o][v][w][f] архив [файл ...]

ОПИСАНИЕ

Команда tar сохраняет файлы на магнитной ленте и извлекает их с ленты. Ее действиями управляют первый аргумент - цепочка символов, содержащая по крайней мере один символ, специфицирующий выполняемую функцию (c, r, t, u, или x), за которым, возможно, следует одна или несколько спецификаций режима выполнения этой функции. Следующими аргументами являются: имя архива (обычно это /dev/mt, но при наличии спецификации f архивом служит файл) и коэффициент блокирования. Остальными аргументами этой команды являются имена файлов и каталогов, указывающие, какие файлы должны быть сохранены или восстановлены. Во всех случаях имя каталога обозначает содержащиеся в нем файлы и (рекурсивно) подкаталоги.

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

r Указанные файлы записываются в конец архива. x Указанные файлы извлекаются из архива, а если задан каталог, содержимое которого было записано в архив, то этот каталог восстанавливается (рекурсивно). Рекомендуется задавать файлы относительными маршрутными именами, иначе tar не сможет найти их в архиве. Имя владельца, время модификации, режим доступа также восстанавливаются (если возможно). Если не указано ни одно имя файла или каталога, то извлекается все содержимое архива. Заметим, что если в архиве есть несколько файлов с одним и тем же именем, то в результате извлечется последний. t Архив просматривается и имена указанных файлов и информация о них выводятся всякий раз, когда они встречаются в архиве. Формат вывода аналогичен команде ls -l. Если имена файлов не указаны, то выводятся сведения обо всех файлах архива. u Указанные файлы добавляются в архив, если их там не было или они были модифицированы после последней записи в архив. Включает спецификацию r. c Создание нового архива; файлы начинают записываться с начала архива, а не за последним файлом. Включает спецификацию r.


Следующие символы могут быть использованы дополнительно к букве, задающей желаемое действие. Использовать их следует в порядке, указанном в разделе СИНТАКСИС.
v Обычно tar выполняет указанное действие без сообщений пользователю. Опция v заставляет tar выводить имена всех файлов, которые он обрабатывает, причем перед именами выводится буква, обозначающая действие. Если выбрана функция t, то v дает больше информации о сохраненном файле, а не просто его имя. w Если указан этот модификатор, то tar печатает действие, которое он собирается сделать, за ним выводит имя файла и ждет подтверждения от пользователя. Если введено слово, которое начинается с буквы y, то действие выполняется. Любое другое введенное слово рассматривается как нет. f Этот модификатор заставляет использовать следующий аргумент как имя архива вместо /dev/mt. Если вместо имени файла задан -, то tar пишет на стандартный вывод или читает со стандартного ввода, в зависимости от указанного действия. Таким образом, tar может использоваться как начало или конец конвейера. Команда tar может также использоваться для копирования каталогов вместе с иерархической структурой подкаталогов при помощи следующей конструкции: cd fdir; /etc/tar cf - . |(cd tdir; /etc/tar xf -)

b Если указан этот модификатор, то аргумент блок используется, как коэффициент блокирования для записей на ленте. По умолчанию он равен 1, максимальный - 20. Если архив обновляемый или он расположен в специальном блочном файле, то модификатор неприменим. Этот модификатор может быть использован только для архивов действительно расположенных на магнитной ленте (см. опцию f выше). Размер блока определяется автоматически при чтении ленты (режимы x и t). l Этот модификатор позволяет выводить сообщения об ошибках, если tar не смог разрешить все ссылки на сохраняемые файлы. Если модификатор l не указан, то сообщений об ошибках по этому поводу не будет. m При использовании этого модификатора время последней модификации файлов, извлекаемых из архива, устанавливается равным времени извлечения, а не тому времени, которое записано в архиве. o Этот модификатор придает извлекаемым из архива файлам идентификаторы владельца и группы пользователя, запустившего программу извлечения, а не идентификаторы, записанные в архиве. Модификатор корректен только в режиме извлечения (x).



ФАЙЛЫ

/dev/mt /tmp/tar*

СМ. ТАКЖЕ

, , .

в Справочнике администратора.

ДИАГНОСТИКА

Сообщения о неправильном спецификаторе и ошибках ввода/вывода на ленту.

Сообщения о нехватке памяти для таблиц ссылок.

СЮРПРИЗЫ

Нет способа указать в архиве n-ый экземпляр заданного файла.

Ошибки ввода/вывода обрабатываются прямолинейно.

Режим u может работать медленно.

Опция b не может быть использована при работе с архивом, который должен обновляться. Используемый сейчас драйвер магнитной ленты не позволяет отматывать ее назад. Если архив находится в дисковом файле, то опцию b нельзя применять ни в коем случае, потому что обновление архива, расположенного на диске, может разрушить его.

Текущее ограничение на длину имени файла равно 100 символам.

Команда tar не копирует пустые каталоги и специальные файлы.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TEE(1)


НАЗВАНИЕ

tee - ответвление канала

СИНТАКСИС

tee [-i] [-a] [файл ...]

ОПИСАНИЕ

Команда tee переписывает стандартный ввод на стандартный вывод и делает копии в файлах. Опции означают:

-i Игнорировать прерывания. -a Добавлять выводимую информацию в файлы, а не переписывать их с начала.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TELINIT(8)


НАЗВАНИЕ

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

СИНТАКСИС

telenit state mkinittab [ttysfyle]

ОПИСАНИЕ

telenit управленяет действиями init(5). Она предоставляет альтернативный метод разрешения входа в систему на терминалах по отношению к методу команд и .

telenit формирует новый файл /etc/ttys из файла /etc/inittab. Строки из файла inittab(3), соответствующие параметру state, преобразуются в свои эквиваленты в файле ttys(3). После этого init сигнализирует о разрешении или запрете подключения к системе на терминалах в соответствии с /etc/ttys.

Допустимые значения state таковы:

0-6 Файл /etc/ttys формируется из строк файла /etc/inittab, соответствующих заданному значению state. q, Q Новый файл /etc/ttys не генерируется, а программе init посылается сигнал, задающий проверку существующего файла /etc/ttys. s, S Программе init посылается сигнал для входа в режим обслуживания системы (однопользовательский режим).

Только привилегированный пользователь может запускать telenit. Пользователи, подключенные к системе в текущий момент на заблокированных терминалах, резко отключаются. Вход в систему на терминалах, не перечисленных в /etc/ttys, не разрешается.

mkinittab выводит на стандартный вывод файл формата inittab, сгенерированный с помощью файлов ttysfiles. Каждый файл из списка ttyfiles должен иметь формат файла ttys. Если файлы ttysfiles не заданы, то выполняется чтение стандартного ввода.

ФАЙЛЫ

/etc/ttys /etc/inittab

СМ. ТАКЖЕ

, , getty(5), init(5), inittab(3), login(5), ttys(3)

ПРИМЕЧАНИЯ

inittab предназначается для пользователей, более знакомых с управлением терминалами по способу telenit, чем со стандартным подходом по методу enable и disable. Предполагается,что в следующей версии системы UNIX будет достигнуто полное объединение этих двух подходов.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TERM(4)


НАЗВАНИЕ

term - формат скомпилированного файла описаний терминалов

СИНТАКСИС

/usr/lib/terminfo/?/*

ОПИСАНИЕ

Скомпилированные описания помещаются в каталог /usr/lib/terminfo. Чтобы предотвратить последовательный поиск в огромном каталоге, используется двухуровневая схема: /usr/lib/terminfo/с/имя, где имя - это имя терминала, а с - первый символ имени. Так, скомпилированное описание терминала att4425 находится в файле /usr/lib/terminfo/a/att4425. Синонимы реализуются с помощью ссылок на один и тот же скомпилированный файл.

Формат скомпилированных файлов выбран так, чтобы он не зависел от оборудования. Считается, что байт содержит 8 бит, но не делается никаких предположений о порядке байт или размножении знака. Таким образом, двоичные файлы могут быть перенесены на любое оборудование, в котором байт содержит 8 бит.

Короткие целые числа записываются в двух восьмибитных байтах. Первый байт содержит наименее значимые 8 бит значения, второй содержит наиболее значимые 8 бит (то есть значение равно 256*второй_байт+первый_байт). Значение -1 представляется в виде 0377,0377, значение -2 в виде 0376,0377, остальные отрицательные числа недопустимы. На компьютерах, на которых эти соглашения не соответствуют оборудованию, необходимо читать целые числа как 2 байта, а затем вычислять значение, обеспечивая таким образом переносимость скомпилированных файлов на разные типы компьютеров. Значение, равное -1, обычно означает, что указанная характеристика у терминала отсутствует. Значение, равное -2, означает, что характеристика отменена в исходном описании и считается отсутствующей.

Скомпилированный файл создается из исходных файлов описаний терминалов [см опцию -I в ] с помощью компилятора . Чтение этого файла производится с помощью процедуры setupterm [см. ].

Скомпилированный файл делится на 6 секций: заголовок, имена терминалов, флаги, числа, цепочки символов, таблица цепочек.

Секция заголовок находится в начале файла. В этой секции содержатся 6 коротких целых чисел:

Магическое число (восьмеричное 0432). Размер (в байтах) секции имен. Размер (в байтах) секции флагов. Количество коротких целых в секции чисел. Количество коротких целых (смещений) в секции цепочек символов. Размер (в байтах) таблицы цепочек.


Следующей идет секция имен терминалов. В ней содержится первая строка из описания , в которой перечисляются различные имена данного терминала, разделенные символами | [см. ]. Эта секция завершается нулевым байтом.

В секции флагов под каждый флаг отводится один байт. Этот байт равен 0 или 1, в зависимости от того, присутствует соответствующая характеристика или отсутствует. Значение 2 означает, что соответствующая характеристика отменена. Характеристики перечисляются в том же порядке, что и во включаемом файле <term.h>.

Между секцией флагов и секцией чисел при необходимости вставляется нулевой байт, обеспечивающий выравнивание начала секции чисел по границе полуслова. Все короткие целые выравниваются по границе полуслова.

Секция чисел похожа на секцию флагов. Описание каждой характеристики занимает 2 байта и представляется коротким целым числом. Значения -1 и -2 означают, что характеристика отсутствует.

Секция цепочек устроена аналогично. Описание каждой характеристики занимает 2 байта и представляется коротким целым числом. Значения -1 и -2 означают, что характеристика отсутствует. В противном случае значение представляет собой смещение цепочки от начала таблицы цепочек. Специальные символы типа ^X или \c записываются во внутреннем виде, а не в виде пары печатных символов. Информация о заполнителях ($<nn>) и о параметрах (%x) записывается в текстовом виде, без интерпретации.

Последней секцией является таблица цепочек. Она содержит все цепочки символов, на которые есть ссылки из секции цепочек. Каждая цепочка завершается нулевым байтом.

Отметим, что процедура setupterm может быть рассчитана на другой набор характеристик, чем тот, который реально присутствует в файле. База данных может измениться после компиляции setupterm, из-за чего в ней могут появиться нераспознаваемые характеристики или наоборот, setupterm может распознавать больше характеристик, чем реально описано в базе данных. Для того, чтобы setupterm могла работать во всех случаях, в заголовок включены размеры других секций. Новые характеристики должны добавляться после уже существующих.



В качестве примера ниже приводится восьмеричный дамп описания терминала Data General Dasher D200:

d200|d100|data general dasher 200, am, bw, cols#80, lines#24, bel=^G, clear=\f, cr=\r, cub1=^Y, cud1=^Z, cuf1=^X, cup=^P%p2%c%p1%c, cuu1=^W, el=^K, home=\b, ind=\n, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q, kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x, kf9=^^y, khome=\b, lf0=f10, nel=\n, rmso=^^E, rmul=^U, smso=^^D, smul=^T,

0000 032 001 " \0 033 \0 \r \0 ) 001 z \0 d 2 0 0 0020 | d 1 0 0 | d a t a g e n e r 0040 a l d a s h e r 2 0 0 \0 001 001 0060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 P \0 377 377 030 \0 0120 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 0140 377 377 377 377 377 377 " \0 & \0 377 377 377 377 $ \0 0160 < \0 377 377 377 377 377 377 . \0 * \0 > \0 377 377 0200 ( \0 377 377 377 377 , \0 377 377 : \0 377 377 377 377 0220 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 0240 377 377 377 377 377 377 377 377 377 377 u \0 x \0 377 377 0260 377 377 377 377 377 377 377 377 377 377 p \0 s \0 377 377 0300 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 0320 377 377 377 377 377 377 377 377 377 377 377 377 377 377 D \0 0340 377 377 377 377 377 377 J \0 M \0 377 377 P \0 S \0 0360 V \0 Y \0 \ \0 _ \0 b \0 e \0 h \0 377 377 0400 377 377 B \0 377 377 377 377 377 377 F \0 377 377 377 377 0420 377 377 H \0 377 377 377 377 j \0 377 377 377 377 377 377 0440 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 0460 377 377 n \0 377 377 377 377 377 377 377 377 377 377 377 377 0500 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 * 0540 377 377 377 377 377 377 @ \0 377 377 377 377 377 377 377 377 0560 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 * 1260 377 377 377 377 377 377 d 2 0 0 | d 1 0 0 | 1300 d a t a g e n e r a l d a s 1320 h e r 2 0 0 \0 007 \0 \f \0 \r \0 031 \0 1340 032 \0 030 \0 020 % p 2 % c % p 1 % c \0 1360 027 \0 013 \0 \b \0 \n \0 031 \0 032 \0 030 \0 027 \0 1400 036 z \0 036 q \0 036 r \0 036 s \0 036 t \0 036 1420 u \0 036 v \0 036 w \0 036 x \0 036 y \0 \b \0 1440 f 1 0 \0 \n \0 036 E \0 025 \0 036 D \0 024 \0 1460

ФАЙЛЫ

/usr/lib/terminfo/?/* Скомпилированная база данных описаний терминалов. /usr/unclude/term.h Включаемый файл описаний для .

СМ. ТАКЖЕ

, , .

в Справочнике администратора.

ОГРАНИЧЕНИЯ

Общий размер скомпилированного описания каждого терминала не должен превышать 4096 байт; размер секции имен терминалов не должен превышать 128 байт.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TERMCAP(3) XENIX System V (21 июня 1987)


ИМЯ

tgetent, tgetnum, tgetflag, tgetstr, tgoto, tputs - yпpaвляeт тepминaлaми

СИНТАКСИС

char PC; char *BC; char *UP; short ospeed;

int tgetent(bp,name) char *bp,*name;

int tgetnum(id) char *id;

int tgetflag(id) char *id;

char *tgetstr(id,area) char *id,*area;

char *tgoto(cm,destcol,destline) char *cm; int destcol,destline;

void tputs(cp,affcnt,outc) register char *cp; int affcnt; int (*outc)();

ОПИСАНИЕ

Дaнныe фyнкции yпpaвляют тepминaлoм в cooтвeтcтвии c termcap(5). Этo yтилиты низкoгo ypoвня. Curses являeтcя пaкeтoм бoлee выcoкoгo ypoвня.

Tgetent пoмeщaeт в бyфep bp инфopмaцию o тepминaлe name. Bp дoлжeн yкaзывaть нa мaccив cимвoлoв paзмepoм 1024 бaйтa и дoлжeн coxpaнятьcя в пpoцecce вызoвoв tgetnum, tgetflag и tgetstr. Tgetent вoзвpaщaeт -1 в cлyчae, ecли пpoизoшлa oшибкa пpи oткpытии фaйлa termcap, вoзвpaщaeт 0, ecли нeт oпиcaния дaннoгo тepминaлa, и aoзвpaщaeт 1, ecли вce нopмaльнo. Ecли в oкpyжeнии нaйдeнa пepeмeннaя TERMCAP и, ecли eгo знaчeниe нe нaчинaeтcя co знaкa "/", a тaкжe ecли name coвпaдaeт co знaчeниeм cтpoки oкpyжeния TERM, cтpoкa TERMCAP иcпoльзyeтcя вмecтo cчитывaния фaйлa termcap. Ecли жe пepeмeннaя TERMCAP нaчинaeтcя co знaкa "/", вмecтo /etc/termcap иcпoльзyeтcя этo имя. Этo пoзвoлит ycкopить paбoтy c фyнкциeй tgetent, oблeгчaeт oтлaдкy нoвыx тepминaлoв и дaeт вoзмoжнocть coздaвaть coбcтвeннoe oпиcaниe тepминaлa, ecли вы нe имeeтe пpaвa зaпиcи в фaйл /etc/termcap.

Tgetnum вoзвpaщaeт чиcлeннoe знaчeниe xapaктepиcтики id, ecли тaкaя cyщecтвyeт для дaннoгo тepминaлa. B пpoтивнoм cлyчae вoзвpaщaeтcя -1. Tgetflag вoзвpaщaeт 1 в cлyчae, ecли yкaзaннaя xapaктepиcтикa id cyщecтвyeт для дaннoгo тepминaлa, и 0 в пpoтивнoм cлyчae. Tgetstr вoзвpaщaeт cтpoкoвyю пepeмeннyю xapaктepиcтики id в бyфepe area, пpи этoм yкaзaтeль area пpoдвигaeтcя впepeд. Taкжe дeкoдиpyeтcя aббpeвиaтypa yкaзaннoгo пoля в termcap(5) зa иcключeниeм инфopмaции пo пoзициoниpoвaнию кypcopa и экpaниpoвaнию.

Tgoto вoзвpaщaeт cтpoкy aдpecaции кypcopa из cm для пepeвoдa кypcopa в cтoлбeц destcol и cтpoкy destline. Пpи нeoбxoдимocти иcпoльзyютcя внeшниe пepeмeнныe UP (xapaктepиcтикa up) и BC (ecли вмecтo bs зaдaнo bc) для тoгo, чтoбы в вoзвpaщaeмyю cтpoкy нe пoпaли \n, Ctrl-D или NULL. Для иcпoльзoвaния дaннoй вoзмoжнocти нeoбxoдимo oбнyлить бит TAB3 (cм. ), тaк кaк tgoto мoжeт вывoдить cимвoл tab. Зaмeтим, чтo пpoгpaммы, иcпoльзyющиe termcap, дoлжны oбнyлить бит TAB3, тaк кaк нa нeкoтopыx тepминaлax Ctrl-I иcпoльзyeтcя для дpyгиx цeлeй. Ecли зaдaнa нeвepнaя % пocлeдoвaтeльнocть, tgoto вoзвpaщaeт OOPS.

Tputs дeкoдиpyeт нaчaльныe экpaниpyющиe cимвoлы в cтpoкe cp; в affcnt пoмeщaeтcя кoличecтвo oбpaбoтaнныx cтpoк или 1, ecли тaкoвыx нeт. Outc вызывaeтcя для кaждoгo oбpaбoтaннoгo cимвoлa. Bнeшняя пepeмeннaя ospeed дoлжнa coдepжaть cкopocть вывoдa тepмнaлa (cм. stty(3)). Bнeшняя пepeмeннaя PC oпpeдeляeт экpaниpyющий cимвoл (из нaбopa pc), ecли нe ycтpaивaeт NULL.

ФАЙЛЫ

/usr/lib/libtermcap.a - библиoтeкa /etc/termcap - дaнныe

СМ. ТАКЖЕ

, termcap(5),

Aвтopcкиe пpaвa

Дaннoe cpeдcтвo paзpaбoтaнo в yнивepcитeтe Kaлифopнии Бepкли и дoлжнo иcпoльзoвaтьcя c paзpeшeния.

ЗAМEЧAНИЯ

Пpи кoмпoнoвкe нeoбxoдимo yкaзывaть флaг -ltermcap.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TERMCAP(7)


НАЗВАНИЕ

termcap - Возможности базы данных терминала.

ОПИСАНИЕ

Файл /etc/termcap - терминалы, описывающие базу данных. Эта база данных используется командами, такими как , , Lyrix, и пакетами программ, curses(2). Терминалы описываются в termcap путем сообщения множества возможностей и описания выполняемых операций. Запросы заполнения и последовательности инициализации включены в termcap.

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

Возможности (включающие расширения XENIX).

Ниже представлен список возможностей, определяемых для данного терминала. В этом списке, (Р) указывает, какое может быть определено наполнение, а (Р*) указывает,что наполнение может быть основано на числе задействованных строк. Вид возможности и поля наполнения подробно описаны в следующем разделе "Виды возможностей".

Коды, начинающиеся с прописных букв (за исключением СС), обозначают расширения XENIX. Они включаются в дополнение к стандартным кодам и используютя одной или более программами применений. Также как в случае стандартных входов, не все режимы поддерживаются всеми применениями или терминалами. Некоторые из этих входов ссылаются на особые выходные свойства терминала (такое как GS для "графического запуска"). Другие описывают последовательности символов, посылаемых ключами, появляющимися на клавиатуре (например, PU для ключа PageUp). Существуют также входы, используемые для предания определенных значений другим ключам (или сочетаниям ключей) для использования в частной программе матобеспечения. Ряд возможностей расширения XENIX имеет аналогичную функцию со стандартными возможностями. Они используются для переопределения особых ключей (например, использование функциональных ключей, как ключей стрелок). Возможности расширения включаются в файл /etc/termcap по мере того, как их затребывают некоторые утилиты XENIX (например ). Наиболее часто употребляемые возможности расширения более подробно описаны в разделе "Расширения XENIX".


ИмяТипPad?Описание aestr(P)Закончить альтернативный набор символов alstr(P*)Добавить новую чистую строку ambool Терминал имеет автоматические поля asstr(P)Начать альтернативный набор символов bcstr Backspace, если не ^H bsbool Можно backspace c ^H btstr(P)Обратный табулятор bwbool(P)Переходы по backspace c позиции 0 на последнюю CCstr Командный символ в прототипе, если cdstr(P*)Очистить до конца терминала cestr(P)Очистить до конца строки CFstr Курсор из chstr(P) Как cm, но только горизонтальное движение, строка остается такой же CLstr Посылается с помощью ключа CHAR LEFT clstr(P*)Очистить экран cmstr(P)Движение курсора conum Номер позиции строки COstr Курсор на crstr(P*)Вернуть каретку (по умолчанию ^M) csstr(P)Изменить область просматривания (vt100), как cm cvstr(P)Как ch, но только по вертикали CWstr Посылается с помощью клавиши CHANGE WINDOW dabool Дисплей может сохраняться выше DAbool Удалить атрибутивную строку dbbool Дисплей может быть сохранен ниже dBnum Необходимое количество миллисекунд bs задержки dCnum Необходимое количество миллисекунд cr задержки dcstr(P*)Удалить символ dFnum Необходимое количество миллисекунд ff задержки dlstr(P*)Удалить строку dmstr Удалить режим (ввода) dNnum Необходимое количество миллисекунд nl задержки dostr Спуститься на одну строку dTnum Необходимое количество миллисекунд tab задержки edstr Закончить режим удаления eistr Закончить режим вставки; дается ':ei=:', если ic ENstr Посылается ключем END eobool Можно удалить лишние удары, вместо них пробелы ffstr(P*)Выброс документальной копии страницы терминала (по умолчанию ^L) G1str Верхний правый (1ый квадрант) угловой символ G2str Верхний левый (2ой квадрант) угловой символ G3str Нижний левый (3ий квадрант) угловой символ G4str Нижний првый (4ый квадрант) угловой символ GCstr Центрирует графический символ (аналогично +) GDstr Символ нижнего кармана GEstr Конец графического режима GGnum Количество символов, забираемое GS и GE GHstr Горизонтальный штриховой символ GLstr Символ левого кармана GRstr Символ правого кармана GSstr Начало графического режима GUstr Символ верхнего кармана MPstr Многократная инициализация строки MRstr Многократный сброс строки GVstr Вертикальный штриховой символ hcbool Терминал документальных копий hdstr На полстроки вниз (прогонка на 1/2 вперед) HMstr Посылается клавишей HOME (если нет kh) hostr Курсор в начало (если нет cm) hustr Полстроки вверх (прогонка на 1/2 назад) hzstr Hazeltine; не может печатать ~' icstr(P)Символ вставки ifstr Имя файла, содержащее is imstr Режим вставки (вход); дается ':im=', если ic inbool Режим вставки различает нули на дисплее ipstr(P*)Вспомогательный символ вставки после вставленного символа isstr Строка инициализации терминала k0-k9str Посылается другими функциональными клавишами 0-9 kbstr Посылается клавишей backspace kdstr Посылается нижней клавишей управления курсором kestr Выход из режима 'keypad transmit' khstr Посылается клавишей HOME klstr Посылается левой клавишей управления курсором knnum Количество 'других' ключей kostr Вводы termcap для других нефункциональных клавиш krstr Посылается правой клавишей управления курсором ksstr Установить терминал в режим 'keypad transmit' kustr Посылается верхней клавишей управления курсором 10-19str Метки на 'других' функциональных клавишах LDstr Посылается клавишей удаления строки LFstr Посылается клавишей line feed linum Количество строк на экране или странице llstr Последняя строка, первая колонка (если не cm) mastr Отображение клавиши управления курсором, используемое vi только версией 2 mibool Безопасно для движения, пока в режиме вставки mlstr Замок памяти на курсоре выше MPstr Многократная инициализация строки MRstr Многократный сброс строки msbool По желанию переход в режим stand out mustr Нет замка памяти (закрыть замок памяти) ncbool Неправильно возвращение рабочей каретки (DM2500,H2000) ndstr Неразрушенная область (курсор вправо) nlstr(P*)Символ новой строки (по умолчанию \n) nsbool Терминал - CRT, но не прoсматривает NUstr Посылается клавишей NEXT UNLOCKED CELL osbool Терминал набирает лишние удары (на клавиатуре) pcstr Символ вспомогательной клавиатуры (лучше нуля) PDstr Посылается клавишей PAGE DOWN PNstr Начало местной печати PSstr Конец местной печати ptbool Имеет символы табуляции аппаратуры (может понадобиться для установки is) PUstr Посылается клавишей PAGE UP RCstr Посылается клавишей RECALC RFstr Посылается клавишей TOGLE REFERENCE GDstr Символ нижнего кармана GEstr Конец графического режима GGnum Количество символов, забираемое GS и GE GHstr Горизонтальный штриховой символ GLstr Символ левого кармана GRstr Символ правого кармана GSstr Начало графического режима GUstr Символ верхнего кармана MPstr Многократная инициализация строки MRstr Многократный сброс строки GVstr Вертикальный штриховой символ RTstr Посылается клавишей RETURN sestr Закончить режим stand out sfstr(P)Просмотр вперед sgnum Количество пробелов, разрешенных so или se sostr Начать режим stand out srstr(P)Обратный просмотр (слова наоборот) tastr(P)Символ табуляции (отличный от ^I 0 или наполнения) tcstr Ввод подобного терминала - должен осуществляться позже testr Строка для окончания программ, использующая cm tistr Строка для начала работы программ, использующая cm ucstr Подчеркнуть один символ и двигать мимо него uestr Закончить режим подчеркивания ugnum Количество пробелов, разрешенных us или ue ulbool Терминал подчеркивает четные, хотя не делает лишних ударов upstr Подняться на строку (курсор вверх) UPstr Посылается клавишей up-arrow (альтернативно ku) usstr Включить режим подчеркивания vbstr Очевидный звонок (не может двигаться курсор) vestr Последовательность для выключения режима open/visual vsstr Последовательность для выключения режима open/visual WLstr Посылается клавишей WORD LEFT WRstr Посылается клавишей WORD RIGHT xbbool Beehive (f1=escape, f2=ctrl C) xnbool Новая строка опускается после перехода (Concept) xrbool Возвращает действия аналогично ce \r \n (Della Data) xsbool Стандартный выход не убирается при записи над ним (HP 264?) xtbool Символы табуляции разрушены, магический символ so (Teleray 1061) <



/p>

Вход выборки

Следующий вход описывает Concept-100 и является одним из наиболее сложных входов в файле termcap. (Этот конкретный ввод Concept устарел и используется только в качестве примера.)

c1|c10|concept100:is=\EU\Ef\E7\E5\E8\E1\ENH\EK\E\200\Eo&\ 200:\:al=3*\E^R:am:bs:cd=16*\E^C:ce=16\E^S:cl=2*^L:\:cm=|Ea%+) +:co#80:dc=16\E^B:\:ei=\E\200:eo:im=\E^P:in:ip=16*:li#24:mi:nd =\E=:\:se=\Ed\Ee:so=\ED\EE:so=\ED\EE:ta=8\t:ul:up=\E;:vb=\Ek\Ek:xn:

Входы могут продолжаться на множество строк с помощью Backslash(\) в качестве последнего символа строки. Пустые места могут включаться для удобства считывания между последнем полем строки и между первым полем следующего. Возможности в termcap трех видов: булевские возможности, указывающие, что терминал имеет некоторое свойство, числовые возможности, дающие размер терминала или размер определенных задержек, и строковые возможности, дающие последовательность, которая может быть использована для выполнения некоторых операций терминала.

Виды возможностей

Все возможности имеют два буквенных входа. Например, факт, что Concept имеет 'автоматические поля' (т.е. автоматический возврат и подачу бумаги, когда достигается конец строки) указывается возможностью am. Описание Concept включает am. За числовыми возможностями следует символ '#' и затем значение. Так co, который указывает число позиций в терминале, для Concept имеет значение '80'.

Наконец, строковые значащие возможности, такие как ce (очистить до конца последовательности строки) даются с помощью двух символьных кодов,'=', и затем строка , оканчивающаяся следующим ':'. В такой возможности может появиться задержка в миллисекундах после '=', и чтобы обеспечить эту задержку редактор посылает символы наполнения после остатка строки. Задержка может быть как целым числом, например, 20, так и целым числом, за которым следует '*', например '3*'. '*' указывает, что требуемое наполнение пропорционально числу строк, задействованных в операции, и заданная величина представляет собой требуемое наполнение на каждое задействование. Когда определяется '*', иногда бывает полезным задать задержку вида '3.5', чтобы задать задержку на единицу до десятых миллисекунды.



Для простого кодирования символов в строковых значащих возможностях обеспечивается ряд управляющих последовательностей. \E отображается в символ ESCAPE, ^x отображается в ctrl-x для любого соответствующего х, а последовательности 2 \n \r \t \b \f дают новую строку, return, tab, backspace и formfeed. Наконец, символы могут задаваться в виде трех восьмеричных цифр после знака \, а символы ^ и \ могут быть представлены как \^ и \\. Если необходимо поместить в возможность двоеточие (:), оно должно быть представлено в восьмеричном виде как \072. Если необходимо поместить в строковую возможность нулевой символ, он должен быть закодирован как \200. Программа, которая взаимодействует с termcap, использует С строки, отрезает старшие биты строки вывода, и так, что \200 будет выводится, как \000.

Подготовительное описание

Наиболее эффективным способом для подготовления терминального описания является описание подобного терминала в termcap и постепенно построение нового описания, используя частичное описание с ex для проверки правильности. Имейте в виду, что очень необычный терминал может проявлять недостаток в возможности файла termcap описать его. Чтобы проверить новое описание терминала, можно установить переменную среды TERMCAP, равную составному имени файла, содержащего описание, над котором вы работаете, и редактор будет смотреть туда скорее, чем в /etc/termcap. TERMCAP может также быть установлена на вход самой termcap, чтобы избежать считывания файла, когда стартуется редактор.

Базовые возможности

Число позиций в каждой строке для терминала задается числовой возможностью co. Если терминал типа CRT, число строк на экране задается возможностью li. Если терминал переходит к началу следующей строки, когда он достигает правого поля, у него должна быть возможность am. Способность терминала очищать свой экран, это задается с помощью строковой возможности cl. Если терминал может осуществлять backspace, он должен иметь возможность bs, если за backspace не идет символ, отличный от ^H; в этом случае следует расценивать этот символ, как строковую возможность bc. Если при этом не стирается предыдущая позиция, то должна иметься возможность os.



Очень важным здесь является то, что движения местного курсора, закодированные в termcap, являются неопределенными в левом и верхнем углах терминала CRT. Редактор никогда не предпринимает попытки осуществить backspace у левого угла, также он не будет продвигаться вверх. Редактор считает, что подача низа экрана вызовет подъем экрана вверх, а возможность am говорит, находится ли курсор в правильном месте экрана. Если терминал имеет включаемые избирательные автоматические поля, файл termcap, как правило, считает, что он включен (т.е. am).

Эти возможности достаточны, чтобы описать печатающий и 'glass-tty' терминалы. Так модель 33 телетайпа описывается как

t3|33|tty33:co#72:os

а Lear Siegler ADM-3 описывается как

cl|adm3|3|lsi adm3:am:bs:cl=^Z:li#24:co#80

Адресация курсора

Адресация курсора в терминале описывается строковой возможностью cm. Эта возможность использует printf(2) как переходы (такие как %x) в ней. Это аналогично кодированию текущей строки или расположения страницы, в то время как другие символы проходят неизмененными. Если строка cm считается функцией, ее аргументы, строки и позиции, к которым желательно двигаться, а % кодировки имеет следующее значения:
%dзаменяется позицией пересечения строки/колонки, начальный адрес 0 %2как %2d - 2 цифровых поля %3как %3d - 3 цифровых поля %как printf(S) %c %+xдобавляет х к значению, затем % %>xyесли значение>x, добавляет y, не выводится %rустанавливает обратный порядок строки и колонки(для начальной позиции 1) %iобратный порядок строки и колонки, не выводится %%увеличивает позицию пересечения строки/колонки (начальная позиция 1) %nисключающее или ряд и колонка с адресом 0140 (DM2500) %BBCD(16*(x/10))+(x%10), не выводится %DОбратное кодирование (x-2*(x-2*(x%16)), не выводится (Delta Data). Рассмотрим HP2645, который, чтобы добраться до ряда 3 и позиции 12 должен быть послан \E&a12c03Y с задержкой в 6миллисекунд. Отметим, что порядок рядов и позиций здесь переставлен, и что ряд и позиция печатаются как две цифры. Таким образом, возможность cm равна 'cm=6\E&%r%2c%2Y'. Чтобы послать текущий ряд и позицию для Microterm ACT-IV необходимо поставить перед ними ^T, причем ряд и позиция просто кодируются в двоичном коде, 'cm=^T%.%'. Терминалы, которые используют %, должны иметь возможность применить backspace к курсору(bs или bc), и сдвинуть курсор вверх на одну строку на экране (up представлен ниже). Это необходимо, так как не всегда безопасно передавать \t, \n ^D и \r, так как система может их изменить или не учесть.

Последним примером является LSI ADM-3a, который использует сдвиг ряда и позиции с помощью пустого символа, таким образом, 'cm=\E=%+%+'.

Движение курсора



Если терминал может перемещать курсор на одну позицию вправо, оставляя символ текущей позиции неизменным, то последовательность следует задавать как nd ( неращрушающей). Если он может перемещать курсор на строку вверх на экране в этой же колонке, то задается последовательность up. Если терминал не имеет курсора адресации, но может возвращать курсор на начальную позицию (самый верхний левый угол экрана), то это может задаваться как ho; аналогично, быстрый способ попасть курсору в самый нижний левый угол экрана - задается как ll; это можно получить включением up из начальной позиции, редактор никогда не выполняет это сам (если ll не выполнит), так как он имеет предписания о результате движения из начальной позиции.

Очищение области

Если терминал может очищать остаток строки, начиная от текущей позиции, оставляя курсор на то же месте, надо задать ce. Если терминал может очищать до конца дисплея от текущей позиции, то следует задавать cd. cd определяется только из первой колонки строки.

Вставка/уничтожение строки

Если терминал может открыть первую пустую строку перед строкой, на которой находится курсор, то это может задавться al. Отметим, что это выполнимо только из первой колонки строки. Курсор должен появиться на новой пустой строке. Если терминал должен уничтожать строку, на которой расположен курсор, то это задается dl; это выполнимо только в первой позиции строки, которая должна быть уничтожена.Если терминал может сохранять дисплейную память над, то следует задавать средство da; если дисплейная память задается ниже, то db. Это позволяет редактору знать, что уничтожение строки на экране может создавать непустые строки выше или что обратное просматривание с sb может создавать ниже непустые строки.

Вставка/стирание символа

Имеется два основных вида разумных терминалов, что касается вставки/стирания символа, которые могут быть описаны с помощью termcap. Наиболее общие операции вставки/стирания символов различаются только тем, что оставляют символы в текущем состоянии или сдвигают их в конец или начало строки. Другие терминалы, такие как Concept 100 и Perkin Elmer Owl, делают различие между напечатыванием и ненапечатыванием пробелов на экране, помещая на место вставляемого или уничтожаемого символа ненапечатанный пробел, который также высвечивается или расширяет их до двух пробелов. Вы можете отличать тип терминала, который вы имеете, путем чистки экрана, затем печатая текст, разделенный движением курсора.



Печатание abc def использует локальные перемещения курсора (не позиции) между abc и def. Тогда курсор помещается перед abc, и терминал устанавливается в режим вставки. Если печатание символов вызывает остаток строки к жесткому сдвигу, и символы отпадают, тогда ваш терминал не делает различия между пробелами и ненапечатанными пробелами порциями. Если "abc" сдвигается к def, которые потом вместе начинают двигаться к концу и затем на следующую вставленную строку, вы имеете второй тип терминала и должны использовать средство in, которое устанавливает для вставки нуль. Мы не знакомы с терминалами, у которых режим вставки не может быть описан ни в одном из этих двух классов.

Редактор может описывать как терминалы, которые имеют режим вставки, так и терминалы, посылающие простую последовательность, чтобы открыть пустую позицию в текущей строке. Чтобы войти в режим вставки, используйте последовательность im или присвойте ей пустое значение, если ваш терминал использует последовательность для вставки нулевой позиции. Чтобы выйти из режима вставки используется последовательность ei (выполните это с помощью нулевого значения, если вы также приписали его im). Теперь определим ic как последовательность, которая должна быть послана непосредственно перед посылкой символа, который должен быть вставлен. Большинство терминалов с настоящим режимом вставки не поддерживают ic, терминалы, которые посылают последовательность для открытия позиции экрана, должны ее выдавать. (Режим вставки предпочтительнее последовательности откытия позиции экрана, если ваш терминал имеет и то , и другое). Если требуется символ для последующего заполнения, задвайте его, как количество миллисекунд в ip (параметр строки). Любая другая последовательность, которую может понадобиться послать после вставки одного символа, может тоже задаваться в ip.

Иногда необходимо организовывать цикл в режиме вставки для удаления символов в одной строке (то есть, если имеется символ табуляции после вставляемой позиции). Если ваш терминал допускает перемещение в режиме вставки, вы можете задать средство mi для ускорения вставки в этом случае. Опускание mi будет влиять только на скорость. Некоторые терминалы (а именно Datamedia) не должны использовать mi из-за способа работы режима вставки.



Наконец, вы можете определить режим удаления символа заданием dm и ed для входа и выхода в режим удаления, idc для удаления одного символа в режиме удаления.

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

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

Коды для начала подчеркивания и конца подчеркивания могут задаваться как us, и ue соответственно. Если терминал имеет код подчеркивания текущего символа и сдвигает курсор на одну позицию вправо, такой как Microterm Mime, последовательность может задаваться как uc. (Если код подчеркивания не движет курсор вправо, определяйте код, так чтобы за ним следовал неразрушающий пробел.)

Если терминал обладает возможностью мерцания экрана для спокойного сообщения об ошибке (вместо звукового), последовательность может задаваться как vb; это не должно двигать курсор. Если терминал следует поместить в другой режим путем откытия и высвечивания ex, последовательность может задаваться как vs и ve, посылаемая в начале и в конце этих режимов соответственно. Это может быть использовано для изменения подчеркивания на курсор блока и обратно.

Если терминалу необходимо быть в специальном режиме во время выполнения программы, которая адресует курсор, коды входа и выхода в этот режим могут задаваться как ti и te. Это возникает для терминалов, подобных Concept c более, чем одной страницей памяти. Если терминал имеет только относительную адресацию памяти курсора, и не относительную адресацию курсора на экране, только одно окно размером с экран может быть фиксировано в терминале для правильной работы.



Если ваш терминал правильно генерирует подчеркнутые символы (без необходимости специальных кодов), даже если он не делает лишних ударов, вам нужно задать средство ul. Если повторные удары замещаются пробелами, это должно указываться определением eo.

Клавиатура

Если терминал имеет клавиатуру, которая передает коды при нажатии клавиш, эта информация должна быть задана. Отметим, что невозможно работать с терминалами, у которых клавиатура работает локально (это поддерживает, например, для несдигаемых клавиш HP 2621). Если клавиатура может быть установлена для передачи или не для передачи, то задавайте эти коды как ks и ke. В противном случае, клавиатура передает. Коды, посылаемые левой стрелкой, правой стрелкой, верхней и нижней стрелками и клавишей home, могут задаваться как kl, kr, ku, kd и kh. Если существуют функциональные клавиши, такие как f0, f1, ...,f9, коды, которые они посылают, могут задаваться как k0, k1,..., k9. Если эти клавиши имеют метки, отличные от принятых по умолчанию, от f0 до f9, метки могут задаваться как 2l0, l1,..., l9. Если несколько клавиш передают тот же самый код, который терминал ожидает от соответствующей функции, такие как очистить экран, 2х буквенный код termcap может быть задан в средстве ko, например, ':ko=cl,ll,sf,sb:', которое говорит о том, что терминал имеет клавиши стирания, помещения в исходное состояние, просмотрен вниз и вверх, которые передают то же самое, как cl, ll, sf и sb.

Вход ma используется для указания клавиш-стрелок, которые имеют один символ клавиш-стрелок. Это устарело, но все еще используется в версии 2 vi, которая должна выполняться на некоторых миникомпьютеров из-за увеличения памяти. Это поле излишне при наличии kl, kr, ku, kd и kh. Оно состоит из двухсимвольных групп. В каждой группе первый символ - это то, что клавиша-стрелка посылает, второй символ - соответствующая команда vi. Эти команды -h для kl, j для kd, k для ku, l для kr, и H для kh. Например, для Mime запись :ma=^Kj^Zk^Xl: указывает, что для клавишей стрелок указано следующее: левая (^H), нижняя (^K), верхняя (^Z) и правая (^X). (В Mime нет клавиши home).

Разное



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

Если табуляция на экране требует заполнения, или если терминал использует символ табуляции, отличный от ^I, то последовательность может задаваться как ta.

Терминалы, которые не разрешают '~' для высвечивания, такие как Hazeltines, должны указывать hz. Datamedia терминалы, которые отражают возврат каретки и подачу строки для возврата каретки, и игнорируют последующую подачу листа, должы указываться nc. Ранние Concept терминалы, которые игнорируют подачу листа, немедленно после am перехода, должны задаваться как xn. Если требуется erase-eol для выхода из standout (вместо написания сверху), может задаваться как xs. Teleray терминалы, в которых символы табуляции заставляют все символы надвигаться на пробелы, должны задаваться как xt. Другие специфические проблемы терминалов могут быть решены посредством добавления других средств в виде xx.

Если руководящий символ для команд в терминале ( обычно символ escape) может установлен некоторой программой, то сам командный символ(ы) задается средством CC.

Другие средства включают is, строку инициализации для терминала и if, имя файла, содержащее длинные строки инициализации. Эти строки ожидаются для надлежащего стирания и помещения символа тябуляции на терминал. Если заданы оба средства, то is помещается перед if. Это полезно, если if /usr/lib/tabset/std, а is стирает в начале табуляцию.

Подобные терминалы

Если есть два подобных терминала, то один описывается также, как другой с некоторыми исключениями. Строковое средство tc может задаваться с именем подобного терминала. Это средство должно быть last, и комбинированная длина двух входов не должна превышать 1024. В то время как программы из termlib просматривают вход слева направо, и средства tc замещаются соответсвующим входом, то средство, заданное слева, замещает таковое в подобном терминале. Средство заканчивается xx@, где xx - данное средство. Например:

hh|2621nl:ks@:ke@:tc=2621

Это определяет 2621nl, который не имеет средств ks и kl и не включает метки функциональных клавиш в видимом режиме. Это полезно для различных режимов терминала или предпочтительнее для различных пользователей.

Расширения XENIX



Средства.

Эта таблица приводит список расширений XENIX (прежде описанный) для средств termcap. Оно показывает, какие коды генерируют ввод информации с клавиатуры в программу, считывающую содержимое клавиатуры, и какие коды генерируют вывод информации из программы на экран.

ИмяВвод/выводОписание CFstrКурсор из CLstrПосылается с помощью клавиши CHAR LEFT CLstrКурсор на DAboolУдалить аттрибутивную строку ENstrПосылается с помощью клавиши END G1strВерхний правый (1ый квадрант) угловой символ G2strВерхний левый (2ой квадрант) угловой символ G3strНижний левый (3ий квадрант) угловой символ G4strНижний правый (4ый квадрант) угловой символ GCstrЦентрирует графический символ (аналогично +) GDstrСимвол нижнего кармана GEstrКонец графического режима GGnumКоличество символов, забираемое GS и GE GHstrГоризонтальный штриховой символ GLstrСимвол левого кармана GRstrСимвол правого кармана GSstrНачало графического режима GUstrСимвол верхнего кармана GVstrВертикальный штриховой символ HMstrПосылается с помощью клавиши HOME(если нет kh) MPstrМногократная инициализация строки MRstrМногократный сброс строки NUstrПосылается клавишей NEXT UNLOCKED CELL PDstrПосылается клавишей PAGE DOWN PUstrПосылается клавишей PAGE UP RCstrПосылается клавишей RECALC RFstrПосылается клавишей TOGLE REFERENCE RTstrПосылается клавишей RETURN UPstrПосылается клавишей up-arrow (альтернативно ku) WLstrПосылается клавишей WORD LEFT WRstrПосылается клавишей WORD RIGHT Движение курсора.

Некоторые прикладные программы используют специально редактирующие коды. CR и CL двигают курсор на один символ вправо и влево соответственно. WR и WL двигают курсор на одно слово вправо и влево соответственно. CW изменяет окна, если они используются в программе.

Некоторые программы отключают курсор. Это завершается использованием CF для выключения курсора и CO для включения в обратное состояние.

Графический режим.

Если терминал имеет графические средства, то этот режим может включаться и выключаться использованием GS и GE кодов. Некоторые терминалы генерируют графические символы со всех клавиш, находясь в графическом режиме (такие как Visual 50). Другие коды G определяют отдельные графические символы, которые доступны с помощью управляющих последовательностей. Эти символы присутсвуют на некоторых терминалах, как альтернативные наборы графических символов (не как в графическом режиме big-map). vt100 имеет доступ к таким альтернативным наборам графических символов, но не в графическом режиме big-map.

Кредит



Эта утилита была развита в Калифорнийском Университете Беркли и используется с позволения.

ПРИМЕЧАНИЯ

допускает только 256 символов для строковых возможностей, и программы в termcap(2) не делают проверку при переполнении этого буфера. Тотальная длина единственного входа (исключая только переходы на новую строку) не могут превышать 1024.

Входы ma, vs и ve определяются в программе .

Не все программы поддерживают все входы. Имеются входы, которые не поддерживаются никакой программой.

Расширения XENIX termcap детально разъясняются в программной документации.

Обращайтесь к ручной странице screen(HW) для описания символьных последовательностей, используемых мониторным устройством в вашей определенной системе XENIX.

ФАЙЛЫ

/etc/termcap Файл, содержащий описания терминала

СМ. ТАКЖЕ

, curses(2), termcap(2), , , , screen(HW)








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TERMINAL(HW)


НАЗВАНИЕ

terminal - терминал для подключения к системе.

ОПИСАНИЕ

terminal - это любое устройство, используемое для ввода и вывода данных. Терминал может быть подключен к компьютеру:

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

Терминал имеет соответствующий файл устройства /dev/tty*.

ФАЙЛЫ

/dev/tty*

СМ. ТАКЖЕ

console(5), disable(1), enable(1), mkdev(8), serial(HW), stty(1), vidi(1), termcap(5), term(3), terminals(5)

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TERMINALS(7)


НАЗВАНИЕ

terminals - Список поддерживающихся терминалов.

ОПИСАНИЕ

Следующий список, выведенный из файла /etc/termcap, показывает имена терминалов (пригодных для использования переменной оболочки TERM) и короткое описание терминала. Консультация в будет помогать пользователям при создании вводов termcaр для терминалов, не поддерживающихся в настоящее время.

ИмяТерминал 33телетайп 33 модели 37телетайп 37 модели 43телетайп 43 модели 300terminet 300 1200terminet 1200 1620diablo 1620 1640diablo 1640 2392239x серии 2392anhp 239x в режиме ansi 2392ne239x серии 2621hp 2621 2621k45hp 2621 c клавиатурой 45 2621nlhp 2621 без меток 2621nthp 2621 w/no символы табуляции 2621wlhp 2621 c метками 2622hp 2622 262xhp 262x серии 2640hp 2640a 2640bhp 264x серии 3045datamedia 3045a 3151ibm3151 3161ibm3161 3163ibm3163 3164ibm3164 4025Tertronix 4024/4025/4027 4025-17Tek 4025 окно 17 линии 4025-17wstek 4025 окно 17 линии в рабочей области 4025exTek 4025 5425AT&T Teлетайп 5425 5425-wAT&T Teлетайп 5425 со 132 колонками 7900NCR 7900-1 8001ISC8001 912bновый Televideo 925новейший Televideo 925soновейший Televideo с Ma2Ampex Model 232 со 132 линиями TWO Altos Computer Systems II a980добавляет consul 980 aaAnn Arbor aaaAnn Arbor Ambassador/48 линий aaa30Ann Arbor Ambassador 30/разрушающий backspace aaadbAnn Arbor Ambassador 48/разрушающий backspace aaa48dbAnn Arbor Ambassador 48/разрушающий backspace act5s"худой" act5 adds добавляется точка наблюдения adds25 добавляется регент 25 с местной печатью adm11lsi adm11 adm12lsi adm12 adm2lsi adm2 adm3lsi adm3 adm3alsi adm3a adm3a+lsi adm3a+ adm3a19.2lsi adm3a на 19.2 бод adm3asolsi adm3a c {} для standout adm5lsi adm5 adm31Lear Siegler ADM31 adm42lsi adm42 aj830Anderson Jacobson altos3Altos III altos4Altos IV altos5Altos V amp219Ampex with Automargins am219wAmpex with 132 колонками amp232Ampex Model 232 ampexAmpex dialogue ansiXENIX standart crt ansi-namXENIX standart crt без автоматического доступа arpanetсеть ataristAtari ST vt52 b26Burrough anci монитор с 29 линиями bh3mBeehive IIIm big262148-строковый 2621 с100Сoncept 100 c1004pc100w/4 страницы c100rvc100 rev video c100rv4pc100 w/4 страницы c100rv4pnac100 with no arrows c100rv4pppc100 с портом принтера c100rvsмедлительный противоположный Cocept 100 c100sмедлительный Cocept 100 c3102Cromenco 3102 carlockkls ccicci 4574 cdc456cdc cdc456tstdc456tst cdicdi1203 cie467C.Itoh 467,414 Graphics terminal cie80C.Itoh 80 cie80namC.Itoh 80 without automargins compucolorCompucolor II d132Datapoint 3360 deltaDelta data 5000 dgDelta general 6053 digilogDigilog 333 dm1520Datamedia 1520 dm1521Datamedia 1521 dm2500Datamedia 2500 dm3025Datamedia 3025a dmtermTandy Deskmate terminal dosansiANSY.SYS standart crt dt100Tandy DT-100 terminal dt100wTandy DT-100 terminal dt200Tandy DT-200 dt80Datamedia dt80/1 dt80132Datamedia dt80/1 в режиме 132char dtc300sdtc 300s dudialup dumpнеизвестный dw1Decwriter I dw2Decwriter II ep40Execuport 4000 ep48Execuport 4080 espHAZEsprit 6310 в режиме Hazeltine emulation ethernetсеть exidyExidy sorcerer как 2500 fosсистема Fortune foxPerkin elmer 1100 free100Freedom 100 free110Freedom 110 ft1024Forward Technology графический контроллер gt40Dec gt40 gt42Dec gt42 h1500Hazeltine 1500 h1510Hazeltine 1510 h1520Hazeltine 1520 h1552Hazeltine 1552 h1552rvHazeltine 1552 reverse video h2000Hazeltine 2000 h19Heathkit h19 w/ функциональной клавиатуры h19aHeathkit h19 в режиме ansi h19nkHeathkit h19 w/ цифровой клавиатуры (нет функциональных ключей) hphp 264x серия hp2626hp 2626 hp2648HP 2648 графический терминал hpansiHewlett Parkard 700/44 в режиме HP-PCterm hpsubhp терминалы -- подмножество возможностей i100General Terminal 100A (прежде Infoton 100) ibm3101IBM 3101-10 intextISC modified owl 1200 ipcIntel IPC k10Kaypro 10 kt7ixKimtron kt-7 lisa AppleLisa XENIX дисплей терминала (белый на черном) m100Radio Shack model 100 mastermMicroterm act iv masterm5Microterm act v mimeMicroterm mime1 mime2aMicroterm mime2a (эмулируя модернизированный vt52) mime2asMicroterm mime2a (эмулируя модернизированный soroc iq120) mime3amime1 эмулируя 3а mime3axmime1 эмулируя модернизированный3а mimefbmime1 полной яркости mimehbmime1 половинной яркости mt70Morrow mt70 nabuтерминал Nabu netxnetronics nuctermNUC homebrew oadm31старый adm31 omronOmron 8025AG ot80Onyx ot80 owl Perkin elmer 1200 pe550Perkin elmer 550 pixelтерминал Pixel plasmaplasma panel pt1500Convergent Technologies PT pt210Tandy TRS-80 PT-210 печатющий терминал qume5Qume Sprint 5 qvt101Qume vt101 qvt101+Qume vt101 Plus vers c qvt101+soQume vt101+ с защищенным режимом/standout qvt101bQume vt101 с набором мигающего курсора qvt102Qume vt102 qvt103Qume vt103 qvt108Qume vt108 qvt109Qume vt109 qvt119Qume vt119 qvt119+Qume vt119 + vers c qvt201Qume vt201 qvt202Qume vt202 qvt203Qume vt203 PLUS regentдобавляет серию регента regent20добавляет регент 20 regent25добавляет регент 25 regent25адобавляет регент 25а regent40добавляет регент 40 regent60добавляет регент 60 regent60naрегент 60 w/нет отмечает ключи regent100добавляет регент 100 rx303терминал Rexon 303 sb1Beehive superbee sb2фиксированный superbee sexidyинтеллектуальный Exidy sk8620Seiko 8620 sorocSoroc 120 sunSun Microsystems Workstation монитор superbeeicsuperbee со вставленным символом switchинтеллигентный переключатель swtpSouthwest Technical Products ct82 t1061Teleray 1061 t1061fTeleray 1061 со скорoстными PROM t3700немой Teleray 3700 t3800Teleray 3800 серии td200Tandy 200 tekTektronix 4012 tek4013Tektronix 4013 tek4014Tektronix 4014 tek4014smTektronix 4014 с мелким шрифтом tek4015Tektronix 4012 tek4014smTektronix 4014 с мелким шрифтом tek4023Tektronix 4023 teletecTeletec Datascreen terakTerak emulating Datamedia 1520 tiTexas Instruments silent 700 ti745Texas Instruments silent 745 ti924Texas Instruments 924 VDT 7 байтовый ti924-8Texas Instruments 924 VDT 8 байтовый ti926Texas Instruments 926 VDT ti931Texas Instruments 931 VDT trs100Tandy TRS-80 Model 100 trs16Tandy trs-80 model 16 console trs600Tandy Model 600 tvi910старый Televideo 910 tvi910+Televideo 910 PLUS tvi912старый Televideo tvi924Televideo924 tvi950Televideo950 tvi950-2pTelevideo950 w/2 страницы tvi950-4pTelevideo950 w/4 страницы tvi950-apTelevideo950 w/alt страницы tvi950bTelevideo950 не бывает tvi950nsTelevideo950 w/не в режиме standout tvi9220Televideo9220 w/строка состояния @ внизу tvi9220wTelevideo9220 132 col w/строка состояния @ внизу v50Visuai 50 эмуляция DEC vt52 v55Visuai 55 эмуляция DEC vt52 (называемая V55) vi50Visuai 50 в ADD эмуляции viewpoint vi55Visuai 55, использующая ADDS эмуляцию vi200Visuai 200 с функциональными клавишами vi200fVisuai 200 без функциональныч клавиш vi200icVisuai 200, использующий символ вставки vi200rvicVisuai 200 инверсионный видео, использующий символ вставки vi200rvVisuai 200 инверсионный видео vis613Visual 613 vt50DEC vt50 vt50hDEC vt50h vt52DEC vt52 vt50soDEC vt52 со скобками, добавляющимися при использовании режима standout vt100DEC vt100 vt100-namDEC vt100 без автоматического выравнивания vt100nDEC vt100 w/ нет init vt100sDEC vt100 132 колонки 14 строк vt100DEC vt100 132 колонки vt102DEC vt102 vt131DEC vt131 vt132DEC vt132 vt220DEC vt220 generic vtz Zilog vtz 2/10 w2110AWang 2110 Asynch Data Entry Terminal - 80 колонок ws584Olivetti WS584 ws584frOlivetti WS584 с клавиатурой на французском языке ws584grOlivetti WS584 с клавиатурой на немецком языке ws584nrOlivetti WS584 с клавиатурой на датско-норвежском языках ws584spOlivetti WS584 с клавиатурой на испанском языке ws584swOlivetti WS584 с клавиатурой на шведско-финском языках ws584ukOlivetti WS584 с канадской клавиатурой ws584usOlivetti WS584 с клавиатурой на американском языке ws685Olivetti WS685 wy30Wyse 30 wy50Wyse 50 wy50nWyse 50 - 80 колонок на экране, нет автоматического выравнивания wy50vbWyse 50 c видимым сигналом wy50wWyse 50 со 132 колонками wy60Wyse 60 с 80 колонками/24 строками экрана в режиме wy60 wy60wWyse 60 сo 132 колонками/24 строками экрана в режиме wy60 wy75Wyse 75 с 80 колонками в строке wy75арWyse 75 с режимами Applications and Cursor keypad wy75wWyse 75 в режиме со 132 колонками wy75хWyse 75 в режиме со 132 колонками в режиме редактора vi wy85Wyse 85 в режиме 80 колонок, vt100 эмуляция wy85wWyse 85 в режиме 132 колонок, vt100 эмуляция wy100Wyse 100 wy350Wyse 350 80 колонок цветной терминал, эмулирующий wy50 wy350wWyse 132 80 колонок цветной терминал, эмулирующий wy50 wy501Wyse 60 с 80 колонками/43 строки экрана в режиме WY50+ x1720Xerox 1720 xitexXitex sct-100 z29Zenith z29 zen30zentec 30 zen40zentec 40 zen50zentec 50 zephyrzentec zephyr220 в режиме vt100 zephyrmanzentec zephyr220 в режиме vt100 w/без автоматического выравнивания

ФАЙЛЫ

/etc/termcap

СМ. ТАКЖЕ

, ,

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TERMINFO(4)


НАЗВАНИЕ

terminfo - база данных характеристик терминалов

СИНТАКСИС

/usr/lib/terminfo/?/*

ОПИСАНИЕ

Terminfo - это скомпилированная база данных [см. ], описывающая характеристики терминалов. В исходных файлах terminfo задаются характеристики терминалов, описывается, как выполняются операции, какие требуются заполнители или инициализирующие последовательности. Эта база данных используется прикладными программами, например, редактором vi или пакетом , так что эти программы могут работать на различных терминалах без всяких изменений. Чтобы получить исходное описание терминала, следует воспользоваться утилитой с опцией -I.

Элементы исходных файлов terminfo состоят из полей, разделенных запятыми. Пробелы и табуляции после каждой запятой игнорируются. Первая строка каждого описания терминала в базе данных задает имена, по которым распознает терминал. Имена разделяются символами |. Первое имя задает наиболее часто используемое сокращение для терминала [именно это имя нужно использовать в качестве значения переменной TERM в $HOME/.profile, см. ], последнее имя длинное, полностью определяющее терминал, все остальные имена являются синонимами первого. Все имена, кроме последнего, не должны содержать пробелов и первые их 14 символов должны быть уникальными; в последнем имени для удобства допускаются пробелы.

Имена терминалов (кроме последнего) должны выбираться в соответствии со следующими соглашениями. Необходимо выбрать некоторое базовое имя, определяющее терминальное оборудование. Так, для терминала AT&T 4425 выбрано имя att4425. Режимы, в которых может находиться терминал, и режимы, которые предпочитают пользователи, обозначаются суффиксами, начинающимися с -. Примеры и более подробную информацию о выборе имен и синонимов можно найти в .

Характеристики

В описаниях, приведенных ниже, переменная - это имя, по которому программист, пишущий на языке C (на уровне terminfo), получает доступ к указанной характеристике. Сокращение - это короткое имя для этой переменной, используемое в тексте базы данных. Оно употребляется человеком, изменяющим базу данных, а также командой при опросе значения указанной характеристики для конкретного терминала. Код termcap - это двухсимвольный код, соответствующий базе данных termcap, которая раньше использовалась для тех же целей, что и terminfo.


Хотя длина имен, соответствующих характеристикам, не ограничена, имена, содержащие более 5 символов, не используются. Всюду, где возможно, имена совпадают или соответствуют тем, что предложены в стандарте ANSI X3.64-1979. Их семантика также соответствует указанному стандарту.

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

(G) Означает, что цепочка символов передается через функцию tparm с указанными параметрами (#i). (*) Означает, что заполнитель зависит от количества затронутых строк. (#i) Обозначает i-й параметр.

Булевы характеристики:

Имя переменнойСокращениеКод termcapОписание auto_left_marginbwbwcub1 переводит курсор из колонки 0 в последнюю колонку auto_right_marginamamВ терминале есть автоматические границы beehive_glitchxsbxbТерминал Beehive (f1=escape, f2=ctrl C) ceol_standout_glitchxhpxsТекст, выведенный в режиме сообщений, не очищается при повторном выводе в то же место (терминал hp) eat_newline_glitchxenlxnПеревод строки после 80 колонок игнорируется (терминал Concept) erase_overstrikeeoeoМожет зачищать надпечатку пробелом generic_typegngnТип терминала может меняться (например, коммутируемая или переключаемая линия) hard_copyhchcТерминал - печатающее устройство hard_cursorchtschtsКурсор трудно увидеть has_meta_keykmkmЕсть ключ МЕТА (если нажат, устанавливается бит четности) has_status_linehshsИмеется дополнительная служебная строка insert_null_glitchininПри режиме вставки распознаются пустоты memory_abovedadaВ терминале запоминается информация, находящаяся выше экрана memory_belowdbdbВ терминале запоминается информация, находящаяся ниже экрана move_insert_modemirmiМожно без опасений перемещаться в режиме вставки move_standout_modemsgrmsМожно без опасений перемещаться в режиме сообщений needs_xon_xoffnxonnxЗаполнение не работает, требуется xon/xoff non_rev_rmcupnrrmcNRsmcup не обратен rmcup no_pad_charnpcNPСимвол-заполнитель не существует over_strikeososТерминал может производить надпечатку prtr_silentmc5i5iВвод не изображается на экране status_line_esc_okeslokesВ служебной строке может использоваться escape teleray_glitchxtxtВывод символа табуляции портит терминал, не пользуйтесь smso (Терминал Teleray1061) tilde_glitchhzhzТерминал Hazeltine, нельзя выводить символы ~ transparent_underlineululСимвол _ производит надпечатку xon_xoffxonxoТерминал использует протокол xon/xoff <



/p>

Числовые характеристики:

Имя переменнойСокращениеКод termcapОписание columnscolscoЧисло колонок в строке init_tabsititШаг позиций табуляции label_heightlhlhКоличество строк в каждой метке label_widthlwlwКоличество колонок в каждой метке lineslinesli Число строк на экране или странице lines_of_memorylmlmЧисло строк памяти, если > lines. 0 означает переменное число magic_cookie_glitchxmcsgКоличество пустых символов, остающихся после smso или rmso num_labelsnlabNlКоличество меток на экране (начиная с 1) padding_baud_ratepbpbМинимальная скорость обмена, для которой требуется заполнитель virtual_terminalvtvtНомер виртуального терминала width_status_linewslwsКоличество колонок в служебной строке
Символьные характеристики:

Имя переменнойСокращениеКод termcapОписание acs_charsacscacПары символов из графического алфавита aAbBcC (по умолчанию =vt100+) back_tabcbtbtОбратная табуляция bellbelblЗвуковой сигнал carriage_returncrcrВозврат каретки (*) change_scroll_regioncsrcsУстановить в качестве роллируемой области строки с #1 по #2 (vt100) (G) char_paddingrmprPАналогично lp, но в режиме замены clear_all_tabstbcctСбросить все позиции табуляции clear_marginsmgcMCСбросить левую и правую границы, установленные программно clear_screenclearclОчистить экран и поместить курсор в начальную позицию (*) clr_bolel1cbОчистить начало строки, включительно clr_eolelceОчистить конец строки clr_eosedcdОчистить конец экрана (*) column_addresshpachУстановить горизонтальную позицию (в абсолютных координатах) (G) command_charactercmdchCCУстанавливаемый в терминале символ-команда cursor_addresscupcmПеремещение курсора в строку #1 колонку #2 (G) cursor_downcud1doВниз на одну строку cursor_homehomehoКурсор в начальную позицию (если нет cup) cursor_invisiblecivisviСделать курсор невидимым cursor_leftcub1leКурсор влево на один шаг cursor_mem_addressmrcupCMАдресация курсора относительно памяти cursor_normalcnormveСделать курсор нормальным (отменить vs/vi) cursor_rightcuf1ndНеразрушающий пробел (курсор вправо) cursor_to_llllllПоследняя строка, первая колонка (если нет cup) cursor_upcuu1upПредыдущая строка (курсор вверх) cursor_visiblecvvisvsСделать курсор очень хорошо видимым delete_characterdch1dcУдалить символ (*) delete_linedl1dlУдалить строку (*) dis_status_linedsldsОтменить служебную строку down_half_linehdhdНа полстроки вниз ena_acsenacsaAРазрешить использование дополнительного алфавита enter_alt_charset_modesmacsasПерейти к дополнительному алфавиту enter_am_modesmamSAВключить автоматические границы enter_blink_modeblinkmbВключить мерцание enter_bold_modeboldmdВключить режим выделенных символов enter_ca_modesmcuptiНачальная цепочка для программ, использующих cup enter_delete_modesmdcdmВойти в режим удаления enter_dim_modedimmhВключить пониженную яркость enter_insert_modesmirimВойти в режим вставки enter_protected_modeprotmpВойти в защищенный режим enter_reverse_moderevmrВойти в режим инверсии enter_secure_modeinvismkВойти в режим, в котором не изображаются выводимые символы enter_standout_modesmsosoВойти в режим сообщений enter_underline_modesmulusВойти в режим подчеркивания enter_xon_modesmxonSXВключить xon/xoff протокол erase_charsechecУдалить #1 символов (G) exit_alt_charset_modermacsaeВернуться из дополнительного алфавита exit_attribute_modesgr0meВыключить все атрибуты exit_ca_modermcupteЗавершающая цепочка для программ, использующих cup exit_delete_modermdcedВыйти из режима удаления exit_insert_modermireiВыйти из режима вставки exit_standout_modermsoseВыйти из режима сообщений exit_underline_modermulueВыйти из режима подчеркивания exit_xon_modermxonRXВыключить xon/xoff протокол flash_screenflashvbВидимый звонок (может не перемещать курсор) form_feedffffПрогон страницы в терминале-принтере (*) from_status_linefslfsВозврат из служебной строки init_1stringis1i1Первая цепочка инициализации терминала init_2stringis2i2Вторая цепочка инициализации терминала init_3stringis3i3Третья цепочка инициализации терминала init_fileififИмя файла, содержащего цепочку инициализации терминала init_progiprogiPИмя программы, производящей инициализацию терминала insert_characterich1icВставить символ insert_lineil1alВставить пустую строку (*) insert_paddingipipВывести заполнитель после вставки символа (*) key_a1ka1K1KEY_A1, 0534, слева вверху на дополнительной клавиатуре key_a3ka3K3KEY_A3, 0535, справа вверху на дополнительной клавиатуре key_b2kb2K2KEY_B2, 0536, в центре клавиатуры key_backspacekbskbKEY_BACKSPACE, 0407, посылается клавишей "забой" key_begkbeg@1KEY_BEG, 0542, посылается клавишей BEG key_btabkcbtkBKEY_BTAB, 0541, посылается клавишей BTAB key_c1kc1K4KEY_C1, 0537, слева внизу на дополнительной клавиатуре key_c3kc3K5KEY_C3, 0540, справа внизу на дополнительной клавиатуре key_cancelkcan@2KEY_CANCEL, 0543, посылается клавишей CANCEL key_catabktbckaKEY_CATAB, 0526, посылается клавишей "очистка всех табуляций" key_clearkclrkCKEY_CLEAR, 0515, посылается клавишей "очистка экрана" key_closekclo@3KEY_CLOSE, 0544, посылается клавишей CLOSE key_commandkcmd@4KEY_COMMAND, 0545, посылается клавишей CMD key_copykcpy@5KEY_COPY, 0546, посылается клавишей COPY key_createkcrt@6KEY_CREATE, 0547, посылается клавишей CREATE key_ctabkctabktKEY_CTAB, 0525, посылается клавишей "очистка табуляции" key_dckdch1kDKEY_DC, 0512, посылается клавишей "удаление символа" key_dlkdl1kLKEY_DL, 0510, посылается клавишей "удаление строки" key_downkcud1kdKEY_DOWN, 0402, посылается клавишей "стрелка вниз" key_eickrmirkMKEY_EIC, 0514, посылается rmir или smir в режиме вставки key_endkend@7KEY_END, 0550, посылается клавишей END key_enterkent@8KEY_ENTER, 0527, посылается клавишей ENTER/SEND key_eolkelkEKEY_EOL, 0517, посылается клавишей "очистка конца строки" key_eoskedkSKEY_EOL, 0516, посылается клавишей "очистка конца экрана" key_exitkext@9KEY_EXIT, 0551, посылается клавишей EXIT key_f0kf0k0KEY_F(0), 0410, посылается функциональной клавишей f0 key_f1kf1k1KEY_F(1), 0411, посылается функциональной клавишей f1 key_f2kf2k2KEY_F(2), 0412, посылается функциональной клавишей f2 key_f3kf3k3KEY_F(3), 0413, посылается функциональной клавишей f3 key_f4kf4k4KEY_F(4), 0414, посылается функциональной клавишей f4 key_f5kf5k5KEY_F(5), 0415, посылается функциональной клавишей f5 key_f6kf6k6KEY_F(6), 0416, посылается функциональной клавишей f6 key_f7kf7k7KEY_F(7), 0417, посылается функциональной клавишей f7 key_f8kf8k8KEY_F(8), 0420, посылается функциональной клавишей f8 key_f9kf9k9KEY_F(9), 0421, посылается функциональной клавишей f9 key_f10kf10k;KEY_F(10), 0422, посылается функциональной клавишей f10 key_f11kf11F1KEY_F(11), 0423, посылается функциональной клавишей f11 key_f12kf12F2KEY_F(12), 0424, посылается функциональной клавишей f12 key_f13kf13F3KEY_F(13), 0425, посылается функциональной клавишей f13 key_f14kf14F4KEY_F(14), 0426, посылается функциональной клавишей f14 key_f15kf15F5KEY_F(15), 0427, посылается функциональной клавишей f15 key_f16kf16F6KEY_F(16), 0430, посылается функциональной клавишей f16 key_f17kf17F7KEY_F(17), 0431, посылается функциональной клавишей f17 key_f18kf18F8KEY_F(18), 0432, посылается функциональной клавишей f18 key_f19kf19F9KEY_F(19), 0433, посылается функциональной клавишей f19 key_f20kf20FAKEY_F(20), 0434, посылается функциональной клавишей f20 key_f21kf21FBKEY_F(21), 0435, посылается функциональной клавишей f21 key_f22kf22FCKEY_F(22), 0436, посылается функциональной клавишей f22 key_f23kf23FDKEY_F(23), 0437, посылается функциональной клавишей f23 key_f24kf24FEKEY_F(24), 0440, посылается функциональной клавишей f24 key_f25kf25FFKEY_F(25), 0441, посылается функциональной клавишей f25 key_f26kf26FGKEY_F(26), 0442, посылается функциональной клавишей f26 key_f27kf27FHKEY_F(27), 0443, посылается функциональной клавишей f27 key_f28kf28FIKEY_F(28), 0444, посылается функциональной клавишей f28 key_f29kf29FJKEY_F(29), 0445, посылается функциональной клавишей f29 key_f30kf30FKKEY_F(30), 0446, посылается функциональной клавишей f30 key_f31kf31FLKEY_F(31), 0447, посылается функциональной клавишей f31 key_f32kf32FMKEY_F(32), 0450, посылается функциональной клавишей f32 key_f33kf33FNKEY_F(33), 0451, посылается функциональной клавишей f33 key_f34kf34FOKEY_F(34), 0452, посылается функциональной клавишей f34 key_f35kf35FPKEY_F(35), 0453, посылается функциональной клавишей f35 key_f36kf36FQKEY_F(36), 0454, посылается функциональной клавишей f36 key_f37kf37FRKEY_F(37), 0455, посылается функциональной клавишей f37 key_f38kf38FSKEY_F(38), 0456, посылается функциональной клавишей f38 key_f39kf39FTKEY_F(39), 0457, посылается функциональной клавишей f39 key_f40kf40FUKEY_F(40), 0460, посылается функциональной клавишей f40 key_f41kf41FVKEY_F(41), 0461, посылается функциональной клавишей f41 key_f42kf42FWKEY_F(42), 0462, посылается функциональной клавишей f42 key_f43kf43FXKEY_F(43), 0463, посылается функциональной клавишей f43 key_f44kf44FYKEY_F(44), 0464, посылается функциональной клавишей f44 key_f45kf45FZKEY_F(45), 0465, посылается функциональной клавишей f45 key_f46kf46FaKEY_F(46), 0466, посылается функциональной клавишей f46 key_f47kf47FbKEY_F(47), 0467, посылается функциональной клавишей f47 key_f48kf48FcKEY_F(48), 0470, посылается функциональной клавишей f48 key_f49kf49FdKEY_F(49), 0471, посылается функциональной клавишей f49 key_f50kf50FeKEY_F(50), 0472, посылается функциональной клавишей f50 key_f51kf51FfKEY_F(51), 0473, посылается функциональной клавишей f51 key_f52kf52FgKEY_F(52), 0474, посылается функциональной клавишей f52 key_f53kf53FhKEY_F(53), 0475, посылается функциональной клавишей f53 key_f54kf54FiKEY_F(54), 0476, посылается функциональной клавишей f54 key_f55kf55FjKEY_F(55), 0477, посылается функциональной клавишей f55 key_f56kf56FkKEY_F(56), 0500, посылается функциональной клавишей f56 key_f57kf57FlKEY_F(57), 0501, посылается функциональной клавишей f57 key_f58kf58FmKEY_F(58), 0502, посылается функциональной клавишей f58 key_f59kf59FnKEY_F(59), 0503, посылается функциональной клавишей f59 key_f60kf60FoKEY_F(60), 0504, посылается функциональной клавишей f60 key_f61kf61FpKEY_F(61), 0505, посылается функциональной клавишей f61 key_f62kf62FqKEY_F(62), 0506, посылается функциональной клавишей f62 key_f63kf63FrKEY_F(63), 0507, посылается функциональной клавишей f63 key_findkfnd@0KEY_FIND, 0552, посылается клавишей FIND key_helpkhlp%1KEY_HELP, 0553, посылается клавишей HELP key_homekhomekhKEY_HOME, 0406, посылается клавишей HOME key_ickich1kIKEY_IC, 0513, посылается клавишей "вставить символ" key_ilkil1kAKEY_IL, 0511, посылается клавишей "вставить строку" key_leftkcub1klKEY_LEFT, 0404, посылается клавишей "стрелка влево" key_llkllkHKEY_LL, 0533, посылается клавишей HOME DOWN key_markkmrk%2KEY_MARK, 0554, посылается клавишей MARK key_messagekmsg%3KEY_MESSAGE, 0555, посылается клавишей MESSAGE key_movekmov%4KEY_MOVE, 0556, посылается клавишей MOVE key_nextknxt%5KEY_NEXT, 0557, посылается клавишей NEXT key_npageknpkNKEY_NPAGE, 0522, посылается клавишей NEXT PAGE key_openkopn%6KEY_OPEN, 0560, посылается клавишей OPEN key_optionskopt%7KEY_OPTIONS, 0561, посылается клавишей OPTIONS key_ppagekppkPKEY_PPAGE, 0523, посылается клавишей PREV PAGE key_previouskprv%8KEY_PREVIOUS, 0562, посылается клавишей PREVIOUS key_printkprt%9KEY_PRINT, 0532, посылается клавишей PRINT или COPY key_redokrdo%0KEY_REDO, 0563, посылается клавишей REDO key_referencekref&1KEY_REFERENCE, 0564, посылается клавишей REFERENCE key_refresh krfr&2KEY_REFRESH, 0565, посылается клавишей REFRESH key_replacekrpl&3KEY_REPLACE, 0566, посылается клавишей REPLACE key_restartkrst&4KEY_RESTART, 0567, посылается клавишей RESTART key_resumekres&5KEY_RESUME, 0570, посылается клавишей RESUME key_rightkcuf1krKEY_RIGHT, 0405, посылается клавишей "стрелка вправо" key_saveksav&6KEY_SAVE, 0571, посылается клавишей SAVE key_sbegkBEG&9KEY_SBEG, 0572, посылается клавишей SHIFT+BEG key_scancelkCAN&0KEY_SCANCEL, 0573, посылается клавишей SHIFT+CANCEL key_scommandkCMD*1KEY_SCOMMAND, 0574, посылается клавишей SHIFT+COMMAND key_scopykCPY*2KEY_SCOPY, 0575, посылается клавишей SHIFT+COPY key_screatekCRT*3KEY_SCREATE, 0576, посылается клавишей SHIFT+CREATE key_sdckDC*4KEY_SDC, 0577, посылается клавишей SHIFT+"удалить символ" key_sdlkDL*5KEY_SDL, 0600, посылается клавишей SHIFT+"удалить строку" key_selectkslt*6KEY_SELECT, 0601, посылается клавишей SELECT key_sendkEND*7KEY_SEND, 0602, посылается клавишей SEND key_seolkEOL*8KEY_SEOL, 0603, посылается клавишей SHIFT+EOL key_sexitkEXT*9KEY_SEXIT, 0604, посылается клавишей SHIFT+EXIT key_sfkindkFKEY_SF, 0520, посылается клавишей SCROLL FORWARD key_sfindkFND*0KEY_SFIND, 0605, посылается клавишей SHIFT+FIND key_shelpkHLP#1KEY_SHELP, 0606, посылается клавишей SHIFT+HELP key_shomekHOM#2KEY_SHOME, 0607, посылается клавишей SHIFT+HOME key_sickIC#3KEY_SIC, 0610, посылается клавишей SHIFT+"вставить символ" key_sleftkLFT#4KEY_SLEFT, 0611, посылается клавишей SHIFT+"стрелка влево" key_smessagekMSG%1KEY_SMESSAGE, 0612, посылается клавишей SHIFT+MESSAGE key_smovekMOV%bKEY_SMOVE, 0613, посылается клавишей SHIFT+MOVE key_snextkNXT%cKEY_SNEXT, 0614, посылается клавишей SHIFT+NEXT key_soptionskOPT%dKEY_SOPTIONS, 0615, посылается клавишей SHIFT+OPTIONS key_spreviouskPRV%eKEY_SPREVIOUS, 0616, посылается клавишей SHIFT+PREVIOUS key_sprintkPRT%fKEY_SPRINT, 0617, посылается клавишей SHIFT+PRINT key_srkrikRKEY_SR, 0521, посылается клавишей SCROLL BACK key_sredokRDO%gKEY_SREDO, 0620, посылается клавишей SHIFT+REDO key_sreplacekRPL%hKEY_SREPLACE, 0621, посылается клавишей SHIFT+REPLACE key_srightkRIT%iKEY_SRIGHT, 0622, посылается клавишей SHIFT+"стрелка вправо" key_srsumekRES%jKEY_SRSUME, 0623, посылается клавишей SHIFT+RESUME key_ssavekSAV!1KEY_SSAVE, 0624, посылается клавишей SHIFT+SAVE key_ssuspendkSPD!2KEY_SSUSPEND, 0625, посылается клавишей SHIFT+SUSPEND key_stabkhtskTKEY_STAB, 0524, посылается клавишей SET TAB key_sundokUND!3KEY_SUNDO, 0626, посылается клавишей SHIFT+UNDO key_suspendkspd&7KEY_SUSPEND, 0627, посылается клавишей SUSPEND key_undokund&8KEY_UNDO, 0630, посылается клавишей UNDO key_upkcuu1kuKEY_UP, 0403, посылается клавишей "стрелка вверх" keypad_localrmkxkeВыход из "прозрачного" режима keypad_xmitsmkxksВход в "прозрачный" режим lab_f0lf0l0f0 если на ней написано не f0 lab_f1lf1l1f1 если на ней написано не f1 lab_f2lf2l2f2 если на ней написано не f2 lab_f3lf3l3f3 если на ней написано не f3 lab_f4lf4l4f4 если на ней написано не f4 lab_f5lf5l5f5 если на ней написано не f5 lab_f6lf6l6f6 если на ней написано не f6 lab_f7lf7l7f7 если на ней написано не f7 lab_f8lf8l8f8 если на ней написано не f8 lab_f9lf9l9f9 если на ней написано не f9 lab_f10lf10laf10 если на ней написано не f10 label_offrmlnLFВыключить программируемые надписи на клавишах label_onsmlnLOВключить программируемые надписи на клавишах meta_offrmmmoВыключить режим МЕТА (взведение 8-го бита) meta_onsmmmmВключить режим МЕТА (взведение 8-го бита) newlinenelnwПеревод строки (возврат каретки и переход к новой строке) pad_charpadpcСимвол-заполнитель отличный от нуля parm_dchdchDCУдалить #1 символов (G*) parm_delete_linedlDLУдалить #1 строк (G*) parm_down_cursorcudDOКурсор вниз на #1 строк (G*) parm_ichichICВставить #1 пустых символов (G*) parm_indexindnSFСроллировать вперед на #1 строк (G) parm_insert_lineilALВставить #1 пустых строк (G*) parm_left_cursorcubLEПереместить курсор влево на #1 позиций (G) parm_right_cursorcufRIПереместить курсор вправо на #1 позиций (G*) parm_rindexrinSRСроллировать назад на #1 строк (G) parm_up_cursorcuuUPПереместить курсор вверх на #1 позиций (G*) pkey_keypfkeypkПрограммировать функциональную клавишу #1 на печать строки #2 pkey_localpflocplПрограммировать функциональную клавишу #1 на выполнение строки #2 pkey_xmitpfxpxПрограммировать функциональную клавишу #1 на выдачу цепочки #2 pkey_normplnpnПрограммировать метку #1 на показ цепочки #2 print_screenmc0psНапечатать содержимое экрана prtr_nonmc5ppOВключить принтер для печати #1 байт prtr_offmc4pfВыключить принтер prtr_onmc5poВключить принтер repeat_charreprpПовторить символ #1 #2 раз (G*) req_for_inputrfiRFПослать следующий введенный символ (для pty) reset_1stringrs1r1Приведение терминала в нормальное состояние reset_2stringrs2r2Приведение терминала в нормальное состояние reset_3stringrs3r3Приведение терминала в нормальное состояние reset_filerfrfИмя файла, содержащего коды для приведения терминала в нормальное состояние restore_cursorrcrcВосстановить позицию курсора (при последней команде sc) row_addressvpacvАбсолютная вертикальная позиция (G) save_cursorscscСохранить позицию курсора scroll_forwardindsfСроллировать текст вверх scroll_reverserisrСроллировать текст вниз set_attributessgrsaЗадать атрибуты изображения #1-#9 (G) set_left_marginsmglMLУстановить левую границу set_right_marginsmgrMRУстановить правую границу set_tabhtsstУстановить остановку по табуляции во всех строках в текущей колонке set_windowwindwiУстановить текущее окно в строках #1-#2, колонках #3-#4 (G) tabhttaПереместиться к следующей остановке по табуляции to_status_linetsltsПерейти в служебную строку, колонку #1 underline_charucucПодчеркнуть один символ и встать за ним up_half_linehuhuНа полстроки вверх xoff_characterxoffcXFСимвол XOFF xon_characterxoncXNСимвол XON <



/p>

Пример задания элемента исходного файла

Следующий элемент, описывающий терминал Concept-100, в момент написания настоящего руководства являлся одним из самых сложных в файле terminfo.

c100|concept100|concept|c104|c100-4p|hds concept 100, am, eo, mir, ul, xenl, cols#80, lines#24, pb#9600, vt#8, bel=^G, blink=\EC, clear=\E?\E^E$<2*>, cr=$<9>\r, cub1=\b, cud1=\n, cuf1=\E=, cup=\Ea%p1%'\s'%+%c%p2%'\s'%+%c, cuu1=\E;, dch1=\E^Q$<16*>, dim=\EE, dl1=\E^B$<3*>, ed=\E^E$<16*>, el=\E^U$<16>, flash=\Ek$<20>\EK, ht=\t$<8>, il1=\E^R$<3*>, ind=\n, .ind=\n$<9>, invis=\EH, ip=$<16*>, is1=\EK, is2=\EU\Ef\E7\E5\E8\El\ENH\EK\E\0\Eo&\0\Eo'\E, is3=\Ev\s\s\s\s$<6>\Ep\n, kbs=\b, kcbt=\E', kctab=\E_, kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q, kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7, kf4=\E8, kf5=\E9, kf6=\E:a, kf7=\E:b, kf8=\E:c, khome=\E?, khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E., kri=\E\\, krmir=\E\200, mc4=^^o\s\E\EQ!\EYP^W, mc5=\EQ"\EY(^W\EYD\Eo\s^^, prot=\EI, rep=\Er%p1%c%p2%'\s'%+%c$<.2*>, rev=\ED, rmcup=\Ev\s\s\s\s$<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex, rmso=\Ed, rmul=\Eg, sgr0=\EN@, smcup=\EU\Ev\s\s8p\Ep\r\E^U$<16>, smir=\E^P, smkx=\EX, smso=\ED, smul=\EG,

Элементы могут располагаться на нескольких строках, каждая строка, кроме первой, должна начинаться с пробела. Строки, начинающиеся с символа #, считаются комментариями.

Типы характеристик

Характеристики terminfo бывают трех типов: булевы, означающие, что терминал имеет соответствующую возможность, числовые, обычно используемые для задания размеров, и символьные, задающие последовательность кодов, которую нужно послать на терминал, чтобы выполнить соответствующее действие.

Все характеристики имеют имена. Например, то, что терминал Concept имеет автоматические границы (то есть при достижении конца строки автоматически выполняется возврат каретки и перевод строки), отражается характеристикой am. За числовыми характеристиками следует знак # и числовое значение, например, для терминала Concept, cols#80 задает число колонок, равное 80. Числовое значение может быть записано как десятичное, восьмеричное или шестнадцатеричное, в соответствии с соглашениями, принятыми в языке C.



Наконец, символьные характеристики, например el ( последовательность кодов для очистки конца строки), задаются именем (от двух до пяти символов), за которыми следует знак = и цепочка символов, завершающаяся запятой. В любом месте внутри цепочки символов может встречаться задержка в миллисекундах, заключенная в "скобки" $<...>. Например, задержка el=\EK$<3> обеспечивается процедурой tputs [см. ] путем посылки символов-заполнителей. Задержка может задаваться числом, например 20, или числом, за которым следует символ * (например, 3*), символ / (например, 5/) или оба символа (например, 10*/ ). Символ * означает, что задержка пропорциональна количеству строк, вовлеченных в операцию, при этом для каждой строки задержка равна указанной (заметим, что для операции вставки символа число вовлеченных строк всегда равно 1). При использовании * можно задавать задержку с точностью до 0.1 миллисекунды (с одним знаком после десятичной точки, например 3.5*). Символ / означает, что задержка обязательна. В противном случае, если терминал поддерживает xon/xoff протокол (характеристика xon), задержка не обязательна и будет использоваться только для оценки сложности операции, а также при двоичном режиме передачи. Обязательная задержка выполняется всегда, независимо от значения характеристики xon.

Для удобства записи управляющих последовательностей применяются следующие соглашения. Последовательности \E и \e обозначают символ ESCAPE (код ASCII 033), ^x обозначает CTRL+x для всех допустимых x, а последовательности \n, \l, \r, \t, \b, \f и \s представляют соответственно перевод строки, переход к новой строке, возврат каретки, горизонтальную табуляцию, возврат на шаг, "переход к новой странице и пробел. Дополнительно имеются следующие последовательности: \^ представляет ^, \\ представляет \, \, представляет запятую, \: представляет :, \0 представляет пустой символ (на самом деле \0 порождает символ \200, который не является терминатором строки и действует на большинстве терминалов, как пустой символ). Наконец, символы можно задавать трехзначным восьмеричным числом после знака \ (например, \123).



Иногда бывает необходимо временно удалить некоторые характеристики. Для этого перед именем характеристики помещается точка (см. в примере выше второе вхождение ind). Заметим, что характеристики обрабатываются слева направо, и используются первые встреченные значения.

Подготовка описаний

Наиболее эффективный путь подготовки описания нового терминала - выбрать из базы данных terminfo описание похожего терминала, а затем постепенно исправлять его, каждый раз проверяя исправления запуском редактора vi. Для проверки нового описания установите переменной окружения TERMINFO значение, равное имени каталога, где хранится скомпилированное новое описание, после этого все программы будут использовать новое описание вместо стандартного. Для определения необходимой задержки при вставке строки (если она не указана производителем оборудования) можно рекомендовать следующий тест. Закомментируйте в описании характеристику xon, войдите редактором vi в большой файл, удалите 16 строк, находясь на середине экрана, и затем быстро несколько раз нажмите клавишу u. Если экран испортился, то требуется б яльшая задержка. Аналогичный тест можно использоваться и для вставки символа.

Заметим, что если Ваш терминал чересчур необычен, Вы можете столкнуться с тем, что возможностей описания его характеристик в terminfo недостаточно, и заставить работать с ним редактор vi невозможно.

Основные характеристики

Количество колонок в каждой строке терминала задается числовой характеристикой cols. Если у терминала есть экран, число строк на нем задается числовой характеристикой lines. Если терминал переводит строку при достижении правой границы, ему нужно приписать булеву характеристику am. Если терминал может очистить экран, помещая курсор в начальную позицию, следует задать символьную характеристику clear. Если терминал при выводе одного символа поверх другого производит не замену, а надпечатку, должна быть указана булева характеристика os. Если терминал является печатающим устройством, нужно указать одновременно булевы характеристики hc и os. (Характеристика os применяется к терминалам типа Tektronix 4010, печатающим устройствам и терминалам, поддерживающим символы языка APL.) Если существует код, помещающий курсор на левую границу текущей строки, укажите его в символьной характеристике cr (обычно это код CTRL+M, возврат каретки). Если существует код, производящий звуковой сигнал, укажите его в символьной характеристике bel. Если терминал, как большинство терминалов, поддерживает протокол xon/xoff, укажите булеву характеристику xon.



Если существует код, перемещающий курсор на одну позицию влево (обычно это CTRL+H, возврат на шаг), укажите его в символьной характеристике cub1. Аналогично, коды, перемещающие курсор вправо, вверх и вниз задаются в характеристиках cuf1, cuu1 и cud1. Эти локальные перемещения курсора не должны изменять текст, через который проходит курсор. Например, обычно нельзя использовать cuf1=\s, поскольку пробел стирает символ, находящийся в текущей позиции.

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

Для того, чтобы сдвинуть текст вверх, необходимо переместиться в левый нижний угол экрана и послать на терминал цепочку символов, заданную в характеристике ind. Для того, чтобы сдвинуть текст вниз, необходимо переместиться в левый верхний угол экрана и послать цепочку, заданную в характеристике ri. Если курсор не находится в указанных позициях, цепочки ind и ri применять нельзя. Существуют также параметризованные характеристики indn и rin, которые отличаются от характеристик ind и ri только тем, что у них есть один параметр, задающий число строк, на которое необходимо сдвинуться. Параметризованные характеристики можно применять только в указанных позициях.

Хотя наличие булевой характеристики am свидетельствует о том, что терминал автоматически переводит курсор на следующую строку при достижении последней колонки, это не обязательно верно для сдвига вправо (cuf1) из последней колонки. Единственное допустимое локальное перемещение, когда курсор находится на границе экрана - это cub1 на левой границе, если терминал обладает характеристикой bw, при этом курсор перемещается на правую границу предыдущей строки, что удобно, например, использовать для рисования рамки по границе экрана. Однако, если терминал не обладает характеристикой bw, эффект перемещения влево с левой границы не определен. Если на терминале есть переключатель, включающий и выключающий автоматические границы, в базе данных terminfo предполагается, что он находится в положении "включено". Если у терминала есть команда, переводящая курсор в первую колонку следующей строки, она задается в символьной характеристике nel.



Упомянутых возможностей достаточно для описания как печатающий устройств, так и дисплеев. Например, телетайп (модель 33) описывается следующим образом:

33|tty33|tty|AT&T model 33 teletype, hc, os, xon, cols#72, bel=^G, cr=\r, cud1=\n, ind=\n,

А вот описание терминала Lear Siegler ADM-3:

adm3|lsi adm3, am, cols#80, lines#24, bel=^G, clear=^Z, cr=\r, cub1=\b, cud1=\n, ind=\n,

Параметризованные цепочки символов

Цепочки символов, служащие для адресации курсора, а также другие цепочки, требующие параметров, задаются с помощью так называемых параметризованных цепочек, содержащих команды, по типу форматных цепочек в . Например, для позиционирования курсора существует характеристика cup, которой требуются два параметра: номер строки и номер колонки. (Строки и колонки нумеруются с нуля и представляют физический экран, видимый пользователю, они не относятся к скрытой, невидимой пользователю дисплейной памяти.) Если терминал допускает относительную адресацию курсора, это отражается в характеристике mrcup.

Механизм разбора параметризованных цепочек символов использует стек и специальные команды (начинающиеся со знака %), манипулирующие стеком. Параметризованные цепочки при этом похожи на программу для калькулятора в обратной польской записи. Обычно вначале параметры загружаются в стек, а затем извлекаются из него с преобразованием в определенный формат. Часто требуются более сложные операции. Бинарные операции записываются в постфикстной форме с традиционным порядком операндов. Так, например, вычитание пятерки из значения x записывается как %gx%{5}%-.

В параметризованных цепочках допустимы следующие команды [pop() обозначает извлечение верхнего элемента стека, push(аргумент) - добавление своего аргумента в стек]:
%%вывести символ % %[[:]флаги][ширина[.точность]][doxXs]вывести pop() в формате, аналогичном , в качестве флагов можно указать [-+#] и пробел. %cвывести pop() в формате %c %p[1-9]push(i-й аргумент) %P[a-z]присвоить переменной [a-z] значение pop() %g[a-z]push(значение переменной [a-z]) %'c'push(символьная константа c) %{nn}push(десятичная константа nn) %lpush(strlen(pop())) %+ %- %* %/ %mвыполнить соответствующую арифметическую операцию (%m - взятие по модулю): push(pop() операция pop()) %& %| %^выполнить соответствующую битную операцию: push(pop() операция pop()) %= %> %<выполнить соответствующую логическую операцию: push(pop() операция pop()) %A %Oлогические операции И и ИЛИ %! %~ унарные операции: push( операция pop()) %iдобавить 1 к первому параметру, если он один, и к первым двум параметрам, если их более одного (используется для ANSI терминалов) %? выражение %t то %e иначе %;если-то-иначе, часть %e иначе может быть опущена. Допустимы конструкции иначе-если с синтаксисом в духе Алгола 68: %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e b4 %; где ci - условия, bi - тела <



/p>

Если в команде %[doxXs] используются флаги - или +, необходимо перед ними поставить :, чтобы было отличие от команд %- и %+, например %:-16.16s.

Рассмотрим несколько примеров.

На терминале Hewlett-Packard 2645 для того, чтобы поместить курсор в 3-ю строку 12-ю колонку требуется вывести последовательность \E&a12c03Y с задержкой 6 миллисекунд. Обратите внимание, что порядок номеров строки и колонки обратный, причем номер дополняется слева нулем до двух цифр. В этом случае описание характеристики cup будет иметь вид cup=\E&a%p2%2.2dc%p1%2.2dY$<6>.

На терминале Micro-Term ACT-IV требуется, чтобы номеру строки и колонки предшествовал символ ^T, номера строки и колонки задаются в двоичном виде, таким образом, cup=^T%p1%c%p2%c. Терминалы, в которых используется %c должны иметь возможности сдвинуть курсор на шаг влево и на шаг вверх (cub1 и cuu1), так как не всегда безопасно выводить на терминал коды \n, ^D и \r, система может их неправильно интерпретировать или проигнорировать (что касается табуляции \t, библиотечные подпрограммы, работающие с terminfo, всегда устанавливают характеристики терминала так, что табуляции не заменяются на пробелы, поэтому посылать на терминал табуляции можно без опасений).

Последний пример относится к терминалу LSI ADM-3a, в котором к адресу строки и колонки прибавляется код пробела, то есть cup=\E=%p1%'\s'%+%c%p2%'\s'%+%c. После вывода двух символов \E= в стек помещается первый параметр, затем туда же кладется код пробела (32), затем сумма замещает два верхних элемента стека, после чего она выводится в двоичном виде. После этого то же самое повторяется со вторым параметром.

Перемещения курсора

Если терминал может быстро перемещать курсор в левый верхний угол экрана, эта возможность задается характеристикой home. Аналогично, быстрый способ перемещения в левый нижний угол задается характеристикой ll. Часто для этого используется перемещение на единицу вверх из левого верхнего угла, однако, как это уже отмечалась, в программе не следует делать предположения относительно эффектов локальных перемещений на границах экрана. Заметим, что перемещение в левый верхний угол экрана эквивалентно перемещению по адресу (0,0) без изменения привязки экрана к дисплейной памяти (если дисплейная память превышает по размерам экран). Например на терминалах Hewlett-Packard в качестве характеристики home нельзя использовать \EH.



Если у терминала есть возможности абсолютной установки строки или колонки, адреса задаются однопараметрическими характеристиками hpa (горизонтальное позиционирование) и vpa (вертикальное позиционирование). Иногда это бывает короче универсального двухпараметрического позиционирования (например, для терминала Hewlett-Packard 2645) и используется вместо cup. Если имеются параметризованные локальные перемещения (например, переместиться на n позиций вправо), они задаются однопараметрическими характеристиками cud, cub, cuf и cuu, что используется на терминалах, не имеющих характеристики cup, например Tektronix 4025.

Очистка областей

Если терминал может очистить конец текущей строки, оставив курсор на прежнем месте, это задается характеристикой el. Если терминал может очистить начало текущей строки до позиции курсора включительно, это задается характеристикой el1. Если терминал может очистить строки, начиная с текущей и до конца экрана, это задается характеристикой ed, которой можно пользоваться, только если курсор находится в первой колонке. Таким образом, очистка конца экрана может быть проэмулирована удалением большого числа строк.

Удаление/вставка строк

Если терминал может вставить пустую строку перед текущей, это задается характеристикой il1, которой можно пользоваться, только если курсор находится в первой колонке. Курсор при этом должен оказаться на только что вставленной строке. Если терминал может удалить текущую строку, это задается характеристикой dl1, которой можно пользоваться, только если курсор находится в первой колонке удаляемой строки. Версии характеристик il1 и dl1, принимающие в качестве параметра число удаляемых или вставляемых строк, задаются, как характеристики il и dl.

Если терминал может устанавливать область роллирования с разрушением (как, например, терминал VT100), соответствующая команда описывается характеристикой csr, которая имеет 2 параметра: верхняя и нижняя строки области роллирования. К сожалению, после выполнения этой команды позиция курсора оказывается неопределенной. С помощью этой команды можно добиться эффекта удаления или вставки строки, рекомендуется при этом пользоваться командами sc и rc (запомнить позицию курсора и восстановить ее). Вставка строк на границах экрана удобнее выполнять командами ri и ind, в том числе и на тех терминалах, которые могут вставлять и удалять строки в любом месте.



Некоторые терминалы могут устанавливать область роллирования без разрушения. Чтобы определить, к какому типу относится Ваш терминал, создайте область роллирования в середине экрана, поместите данные в нижнюю строку области роллирования и выполните команду ri, за которой dl1 или ind. Если данные из нижней строки, исчезнувшие после команды ri, восстановились на экране после команды dl1 или ind, значит Ваш терминал устанавливает область роллирования без разрушения. В этом случае указывать характеристику csr нельзя.

Если терминал может определять окно, как часть дисплейной памяти, к которой относятся команды, это задается характеристикой wind, которая имеет четыре параметра: начальная и конечная строки памяти, начальная и конечная колонки памяти, в указанном порядке.

Если терминал может использовать дисплейную память ниже экрана, это задается булевой характеристикой db, возможность использования дисплейной памяти выше экрана задается булевой характеристикой da. Это означает, что удаление строки или роллирование экрана может привести к появлению непустой строки внизу или роллирование с помощью ri может привести к появлению непустой строки вверху.

Удаление/вставка символов

Существует два способа удаления/вставки символов, которые могут быть описаны в terminfo. Чаще всего, удаление и вставка символов приводит к сдвигу всего конца текущей строки. Однако есть терминалы, например Concept 100 или Perkin Elmer Owl, которые различают выведенные на экран пробелы и места, куда ничто не было выведено (пустоты). При этом при вставке и удалении символов сдвиг затрагивает только пустоты, которые либо удаляются с экрана, либо заменяются на два пустых символа. Вы можете определить к какому типу относится Ваш терминал, очистив экран и напечатав несколько символов вперемежку с перемещением курсора. Напечатайте abc def, используя между словами не пробел, а перемещение курсора. Затем поместите курсор перед abc и переведите терминал в режим вставки. Если последующий ввод символов приводит к сдвигу строки целиком, а символы, выходящие за край экрана пропадают, то Ваш терминал не различает пробелы и пустоты. Если abc вначале пододвигается к def, а затем они вместе движутся к краю экрана и переходят на следующую строку, то Ваш терминал относится ко второму типу, и для него должна быть задана булева характеристика in. Хотя логически переход символов на следующую строку и специальная обработка пустот представляют собой разные вещи, в terminfo используется одна характеристика, поскольку нам не встречался терминал, ведущий себя иначе, чем описано выше.



В terminfo можно описать как терминалы, у которых имеется режим вставки, так и терминалы, требующие специальной команды для освобождения пустого места перед выводом символа. В характеристике smir задается команда для перевода терминала в режим вставки. В характеристике rmir задается команда для вывода терминала из режима вставки. В характеристике ich1 задается последовательность, которую нужно послать перед выводом вставляемого символа. Большинство терминалов, имеющих режим вставки, не имеют команды ich1. (Если Ваш терминал имеет обе возможности, предпочтительнее использовать режим вставки. При этом не следует, без необходимости, задавать характеристику ich1.) Если при вставке символов требуется задержка, она задается в символьной характеристике ip. В характеристике ip можно также задать последовательность, которая должна быть послана на терминал после вставки одного символа. Если Ваш терминал требует одновременного включения режима вставки и использования специального кода, освобождающего место для вставляемого символа, следует указать обе характеристики (smir/ rmir и ich1), и обе они будут использованы. Характеристика ich с одним параметром n повторяет эффект ich1 n раз.

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

Иногда при удалении символа в текущей строке возникает необходимость в перемещении курсора (например, если удаляется символ табуляции). Если Ваш терминал позволяет перемещать курсор в режиме вставки, укажите булеву характеристику mir. Если характеристика mir не указана, выполнение операции будет чуть медленнее. Для некоторых терминалов (например, Datamedia) из-за специфических свойств режима вставки указывать mir нельзя.

Для удаления символов указываются следующие характеристики: dch1 для удаления одного символа, dch для удаления n символов, smdc и rmdc для входа и выхода из режима удаления (состояния терминала, при котором правильно работает команда dch1).

Команда для очистки n символов (эквивалентная выводу n пробелов без перемещения курсора) задается характеристикой ech, имеющей один параметр.

Яркость, подчеркивание и другие визуальные эффекты



Если Ваш терминал имеет различные возможности визуализации, воспользоваться ими можно по-разному. Вы можете выбрать определенный режим, такой как режим сообщений [см. ], в котором символы изображаются ярко, контрастно, и использовать его для вывода сообщений об ошибках и других сообщений, привлекающих внимание. (Если у Вас есть выбор, хорошим вариантом является инверсия пониженной яркости или просто инверсия, хотя разные пользователи на разных терминалах имеют различные предпочтения.) Последовательности для входа в режим сообщений и выхода из него задаются в характеристиках smso и rmso соответственно. Если последовательность, переводящая в режим сообщений или выводящая из него, оставляет на экране один или два пробела, как это происходит с терминалами TVI 912 и Teleray 1061, в числовой характеристике xmc задается это число.

Коды, необходимые для начала и завершения подчеркивания, задаются в характеристиках smul и rmul соответственно. Если терминал может подчеркнуть текущий символ, передвинув при этом курсор на шаг вправо, как например терминал Micro-Term MIME, это задается характеристикой uc.

Другие визуальные эффекты включают в себя: blink (мерцающие символы), bold (выделенные - жирные или более яркие символы), dim (символы пониженной яркости), invis (невидимые символы), prot (защищенные символы), rev (инвертированные символы), sgr0 (выключить все атрибуты), smacs (перейти к альтернативному набору символов) и rmacs (выйти из альтернативного набора символов). Включение одного из этих режимов может повлиять (а может и не повлиять) на установку остальных режимов. Если перед переходом к альтернативному набору символов требуется выполнить какие-то команды, они задаются в характеристике enacs.

Если существует последовательность, устанавливающая набор атрибутов, она задается характеристикой sgr, имеющей девять параметров. Каждый параметр может быть нулем или не нулем, в зависимости от того, выключается соответствующий атрибут или включается. Девять параметров задаются в следующем порядке: режим сообщений, подчеркивание, инверсия, мерцание, пониженная яркость, выделение, невидимые символы, защита, альтернативный набор символов. В sgr не обязательно поддерживать все режимы, достаточно тех, для которых существует соответствующая команда (см. пример в конце настоящего описания).



Терминалы с характеристикой xmc при получении последовательностей, переключающих режимы, выдают на экран всякий мусор. Некоторые терминалы, например, Hewlett Packard 2621, автоматически выходят из режима сообщений при переходе на новую строку или адресации курсора. Программы, использующие режим сообщений, должны выйти из него прежде, чем адресовать курсор или переходить на новую строку, если только не задана характеристика msgr, говорящая о том, что перемещаться в режиме сообщений можно без опаски.

Если терминал обладает способностью беззвучной сигнализации об ошибке, она задается в характеристике flash, при этом курсор перемещаться не должен. Хорошим беззвучным сообщением является инвертирование всего экрана, задержка 200 мс и восстановление нормального изображения на экране.

Если существует возможность сделать курсор более заметным, чем обычно (например, блок или мерцающее подчеркивание вместо немерцающего подчеркивания), эта последовательность задается в характеристике cvvis, при этом необходимо задать булеву характеристику chts. Возможность сделать курсор абсолютно невидимым задается характеристикой civis. Характеристика cnorm задает последовательность, возвращающую курсор в обычное состояние.

Если требуется, чтобы для использования команд адресации терминал находился в определенном состоянии, коды для перехода к этому состоянию и выхода из него задаются характеристиками smcup и rmcup. Это нужно, например, для терминала Concept, который имеет несколько страниц памяти. Поскольку адресация курсора ведется относительно памяти, а не экрана, чтобы адресация работала, необходимо правильно привязать экран к памяти. Эти характеристики используются также для терминала Tektronix 4025, для которого smcup устанавливает командный символ. Если smcup после rmcup не восстанавливает полностью состояние до rmcup, необходимо указать булеву характеристику nrrmc.

Если на Вашем терминале подчеркивание получается путем вывода символа подчеркивания, даже если в других случаях вывода одного символа поверх другого надпечатки не происходит, то необходимо указать булеву характеристику ul. Для терминалов, на которых вывод одного символа поверх другого производит надпечатку, задайте булеву характеристику os. Если при надпечатке пробелом можно стереть символ, задайте характеристику eo.



Пример задания визуальных эффектов: пусть рассматриваемый терминал требует следующих последовательностей для включения режимов:
ПараметрАтрибутПоследовательность нет\E[0m p1сообщение\E[0;4;7m p2подчеркивание\E[0;3m p3инверсия\E[0;4m p4мерцание\E[0;5m p5пониж.яркость\E[0;7m p6выделение\E[0;3;4m p7невидимость\E[0;8m p8защитаотсутствует p9альтерн.набор^O (выкл) ^N (вкл) Обратите внимание, что указанные последовательности вначале выключают все режимы, а затем включают нужный. Заметьте также, что режим сообщений, как было рекомендовано выше, включает инверсию пониженной яркости. Поскольку терминал не имеет выделенного режима, выделение реализуется подчеркиванием и инверсией. Наконец, для комбинации атрибутов, например, подчеркивание + мерцание, используется следующая последовательность: \E[0;3;5m. У терминала нет защищенного режима и его никак нельзя проэмулировать, поэтому p8 игнорируется. Работа с альтернативным набором переключается символами ^O и ^N. Чтобы включить все режимы, необходимо послать следующую последовательность: \E[0;3;4;5;7;8m^N.

Теперь посмотрим, как выводятся различные последовательности. Например, ;3 выводится, если истинно p2 или p6, то есть включается режим подчеркивания или выделения. Выписывание последовательностей и их зависимостей дает следующее:
Последоват.Когда выводитьВ виде terminfo \E[0всегда\E[0 ;3если p2 или p6%?%p2%p6%|%t;3%; ;4если p1 или p3 или p6%?%p1%p3%|%p6%|%t;4%; ;5если p4%?%p4%t;5%; ;7если p1 или p5%?%p1%p5%|%t;7%; ;8если p7%?%p7%t;8%; mвсегдаm ^N или ^O если p9 ^N иначе ^O %?%p9%t^N%e^O%; Записывая все это в одну последовательность, получаем:

sgr=\E[0%?%p2%p6%|%t;3%;%?%p1%p3%|%p6%|%t;4%;%?%p4%t;5%; %?%p1%p5%|%t;7%;%?%p7%t;8%;m%?%p9%t^N%e^O%;

Клавиатура

В terminfo можно записать информацию о кодах, которые посылает в компьютер клавиатура терминала при нажатии клавиш. Некоторые терминалы не посылают кодов в компьютер, нажатие клавиш изображается только на экране, например, терминал Hewlett-Packard 2621. Если командами можно заставить терминал посылать или не посылать коды при нажатии клавиш, эти команды указываются в характеристиках smkx и rmkx. В противном случае считается, что клавиши всегда посылают коды. С терминалами, которые никогда не посылают кодов, работать невозможно.



Коды, которые посылаются стрелками влево, вправо, вверх и вниз и клавишей HOME, задаются характеристиками kcub1, kcuf1, kcuu1, kcud1 и khome соответственно. Если на клавиатуре имеются клавиши f0, f1, f2, ..., f63, посылаемые ими коды задаются характеристиками kf0, kf1, kf2, ..., kf63. Если надписи на первых 11 клавишах не f0, ..., f10, их можно задать характеристиками lf0, lf1, ..., lf10. Можно также задать коды, посылаемые некоторыми другими клавишами: kll (в левый нижний угол), kbs (возврат на шаг), ktbc (очистка всех табуляций), kctab (очистить точку останова табуляции), kclr (очистка экрана), kdch1 (удалить символ), kdl1 (удалить строку), krmir (войти в режим вставки), kel (очистить конец строки), ked (очистить конец экрана), kich1 (вставить символ или войти в режим ставки), kil1 (вставить строку), knp (следующая страница), kpp (предыдущая страница), kind (роллирование вперед), kri (роллирование назад), khts (установить точку останова табуляции). В дополнение, если на клавиатуре есть область из 9 клавиш (3x3), включающая в себя стрелки, то остальные 5 клавиш могут быть заданы, как ka1, ka3, kb2, kc1 и kc3. Эти клавиши обычно используется, когда необходимо отслеживать расположение нажимаемых клавиш на клавиатуре. Выше в списке характеристик перечислен дополнительно целый ряд клавиш, которые также могут быть заданы.

Цепочки символов для программирования функциональных клавиш задаются характеристиками pfkey, pfloc и pfx. Цепочки для программирования изображаемых надписей задаются характеристикой pln. Каждая из этих характеристик имеет два параметра: номер клавиши, которую нужно запрограммировать (от 0 до 10) и программирующую цепочку. Если указанный номер клавиши больше 10, результат не определен, для некоторых терминалов при этом может запрограммироваться какая-нибудь дополнительная клавиша. Характеристика pfkey приводит к тому, что эффект от нажатия клавиши эквивалентен указанной цепочке, характеристика pfloc заставляет терминал при нажатии клавиши выполнять указанные операции в локальном режиме, характеристика pfx приводит к посылке указанной последовательности в компьютер. Характеристики nlab, lw и lh задают число программируемых надписей, их ширину и высоту. Если имеются команды включения и выключения программируемых надписей, они задаются характеристиками smln и rmln. Обычно smln выводят после вывода нескольких pln, чтобы быть уверенными, что надписи видны.

Табуляции и инициализация



Если терминал поддерживает точки останова табуляции, то команда, которая перемещает курсор до следующей точки останова табуляции, задается характеристикой ht (обычно это CTRL+I). Команда, перемещающая курсор к предыдущей точке останова табуляции, задается характеристикой cbt. Если характеристики линии установлены так, что драйвер заменяет табуляции на соответствующее число пробелов, а не посылает их напрямую на терминал, программы не должны использовать ht и cbt, даже если они присутствуют, поскольку у пользователя позиции табуляции могут быть установлены не так. Если терминал поддерживает точки останова табуляции, которые при инициализации устанавливаются в каждую n-ю позицию, параметр n задается числовой характеристикой it. Это используется командой tput init [см. ] для определения того, нужно ли устанавливать замену табуляций на пробелы и где установить точки останова табуляции. Если терминал может сохранять установку позиций табуляции и при выключении питания, в описании terminfo считается, что они установлены правильно. Если имеются команды установки и очистки позиций табуляции, они задаются характеристиками tbc (очистить все позиции табуляции) и hts (установить позицию табуляции в текущую колонку каждой строки).

Кроме того, имеются следующие характеристики: is1, is2 и is3, инициализирующие цепочки символов для терминала, iprog, имя программы, инициализирующей терминал, и if, имя файла, содержащего длинную цепочку для инициализации. Предполагается, что эти цепочки устанавливают терминал в состояние, соответствующее дальнейшему описанию в terminfo. Они должны посылаться на терминал в следующем порядке: запустить программу iprog, вывести is1, вывести is2, установить границы с помощью mgc, smgl и smgr, установить табуляции с помощью tbc и hts, вывести файл if, и, наконец, вывести is3. Обычно именно это делается командой tput init [см. , ].

Большинство инициализаций выполняется с помощью is2. Специальные режимы терминалов могут быть установлены без дублирования цепочек символов с помощью общей для всех последовательности is2 и специальных is1 и is3. Последовательности, которые переводят терминал в начальное состояние из абсолютно любого, задаются характеристиками rs1, rs2, rf и rs3 (аналогично is1, is2, if и is3). (Некоторые описания используют характеристики if и rf с файлами из /usr/lib/tabset/*, однако рекомендуется использовать цепочки инициализации.) Характеристики rs1, rs2, rf и rs3 выводятся командой tput reset, которая используется для выведения терминала из непонятного состояния. Команды помещаются в rs1, rs2, rf и rs3 только если они производят неприятный эффект на экране и при нормальной работе не требуются. Например, команду, переводящую терминал в режим 80 колонок, можно поместить в is2, но на некоторых терминалах она приводит к неприятным эффектам на экране, и к тому же обычно не требуется, так как терминал и так находится в режиме 80 колонок.



Если для установки позиций табуляций требуются действия более сложные, чем просто использование tbc и hts, необходимая последовательность помещается в is2 или if.

Задержки

Некоторые характеристики управляют задержками в драйвере . Обычно это требуется для печатающих устройств и используется командой tput init для правильной установки характеристик в драйвере. Задержки, указанные в характеристиках cr, ind, cub1, ff и tab, могут использоваться для установки соответствующих бит задержки в драйвере tty. Если указана характеристика pb (минимальная скорость для применения задержки), то при скоростях ниже указанной задержка не применяется.

Служебные строки

В terminfo можно занести информацию о том, что у терминала есть дополнительная служебная строка, которая обычно не используется программами. Если это нижняя строка экрана, которая обычным образом адресуется (например, 25-я строка терминала Heathkit h19 или 24-я строка терминала vt100, в котором установлена 23-строчная область роллирования), необходимо задать характеристику hs. Специальные команды, перемещающие курсор в заданную позицию служебной строки и возвращающие курсор обратно, задаются характеристиками tsl и fsl. (fsl должна оставлять курсор в том же месте, в каком он был до tsl. При необходимости следует воспользоваться командами sc и rc.) Характеристика tsl имеет один параметр - номер колонки в служебной строке, в которую помещается курсор.

То, что терминал может выполнять команды, например табуляцию, даже если курсор находится в служебной строке, задается характеристикой eslok. Цепочка символов, убирающая с экрана или очищающая служебную строку, задается характеристикой dsl. Если терминал может запоминать и вспоминать позицию курсора, задайте характеристики sc и rc. Считается, что служебная строка имеет ту же длину, что и все остальные, то есть cols. Если длина служебной строки иная (например, терминал не позволяет заполнить всю служебную строку), то она задается числовой характеристикой wsl.

Псевдографика

Если у терминала есть альтернативный набор символов, позволяющий выводить рамки и стрелки, отображение рисунка на код символа задается символьной характеристикой acsc. Определение этой цепочки основано на альтернативном наборе символов терминала vt100 фирмы DEC, несколько расширенного символами терминала 4410v1 фирмы AT&T.

ИзображениеСимвол vt100+ стрелка вправо+ стрелка влево, стрелка вниз. сплошной блок0 фонарикi стрелка вверх- алмаз` клеткаa знак градусаf плюс/минусg квадратыh правый нижний уголj правый верхний уголk левый верхний уголl левый нижний уголm крестn надчеркиваниеo горизонтальq подчеркиваниеs левый крайt правый крайu нижний крайv верхний крайw вертикальx перечисление~ <



/p>

Самый лучший способ описания средств псевдографики другого терминала заключается в следующем. Сначала надо добавить к таблице, приведенной выше, новую колонку и в ней перечислить символы, которые в альтернативном наборе нового терминала выводят то же изображение. Например,
ИзображениеСимвол vt100+Новый терминал левый верхний уголlR левый нижний уголmF правый верхний уголkT правый нижний уголjG горизонтальq, вертикальx. После этого необходимо выписать символы слева направо, то есть acsc=lRmFkTjGq\,x..

Дополнительные возможности

Если терминалу требуется заполнитель, отличный от нуля, он задается характеристикой pad. Используется только первый символ значения pad. Если у терминала нет заполнителя, укажите характеристику npc.

Возможности терминала перемещать курсор на полстроки вверх или вниз задаются характеристиками hu и hd соответственно. Они обычно используются для верхних и нижних индексов на печатающих устройствах. Возможность печатающего устройства прогонять бумагу до следующей страницы задается характеристикой ff (обычно это CTRL+L).

Если имеется команда, повторяющая заданный символ заданное число раз (и позволяющая тем самым уменьшить время, необходимое для передачи группы одинаковых символов), она задается характеристикой rep. Первым параметром является повторяемый символ, а вторым - количество повторений. Таким образом, tparm(repeat_char,'x',10) выводит xxxxxxxxxx.

Некоторые терминалы могут изменять символ, используемый в качестве командного, как например Tektronix 4025. Символ, который используется во всех командах, но в некоторых случаях может быть другим, задается характеристикой cmdch. В некоторых системах поддерживается следующее соглашение: если определена переменная окружения CC [см. ], то символ, заданный характеристикой cm, во всех командах заменяется на значение переменной окружения CC.

Если к одной и той же линии могут подключатся различные терминалы (например, через сеть), можно использовать характеристику gn, чтобы программа могла определить, что тип подключенного терминала неизвестен (это не относится к виртуальным терминалам, чьи характеристики известны). Если терминал поддерживает протокол виртуального терминала системы UNIX, его номер задается числовой характеристикой vt. Последовательность, которую нужно послать на терминал перед чтением с него, задается характеристикой rfi.



Если терминал поддерживает протокол xon/xoff, укажите характеристику xon. Можно оставить информацию о задержках, полезную для оценки сложности операции, но символы-заполнители при этом передаваться не будут. Последовательности, включающие протокол xon/xoff и выключающие его, задаются характеристиками smxon и rmxon. Если символы в протоколе xon/xoff не CTRL+Q и CTRL+S, они могут быть заданы характеристиками xonc и xoffc.

Если терминал имеет клавишу МЕТА, которая действует, как клавиша регистра, устанавливая восьмой бит передаваемого кода, укажите характеристику km. В противном случае программы считают, что восьмой бит является битом четности и очищают его. Если имеются команды, включающие и выключающие этот "МЕТА-режим", они задаются характеристиками smm и rmm.

Если в дисплейной памяти терминала строк больше, чем на экране, то число строк в памяти задается характеристикой lm. Значение lm#0 означает, что число строк памяти неизвестно, но оно все-таки больше, чем число строк на экране.

Команды, управляющие принтером, подключенным к терминалу, задаются следующими характеристиками: mc0 (напечатать содержимое экрана), mc4 (выключить принтер) и mc5 (включить принтер). Если принтер включен, весь текст, посылаемый на терминал, посылается и на принтер. Характеристика mc5p, имеющая один параметр, включает принтер для печати указанного числа символов, а затем его выключает. Параметр при этом не должен превосходить 255. Если при печати на принтере текст не изображается на экране, укажите характеристику mc5i. Если выполняется команда, заданная mc5p, то принтеру передаются все коды, включая mc4.

Особые случаи

Имеющиеся в terminfo характеристики хорошо описывают большинство терминалов. Однако некоторые терминалы не удается описать полностью. Это является не недостатком конкретного терминала, а скорее свидетельствует об отличии конкретного оборудования от той модели терминала, на которой основана terminfo.

Для некоторых конкретных терминалов в terminfo предусмотрены специальные характеристики.



Для терминалов, которые не умеют изображать знак ~, как, например, терминал Hazeltine, задается характеристика hz.

Для терминалов, которые игнорируют перевод строки сразу после автоматического перехода на новую строку при достижении правой границы, как терминал Concept 100, задается характеристика xenl. Для терминалов, на которых курсор остается на правой границе до получения следующего символа, вместо того, чтобы перейти на следующую строку сразу, как терминал vt100, тоже задается характеристика xenl.

Если текст, выданный в режиме сообщений, должен обязательно очищаться командой el перед выводом текста поверх него, то задается характеристика xhp.

Для терминалов Teleray, которые табуляциями затирают текст, через который перемещается курсор, необходимо задать характеристику xt. Эта же характеристика означает, что для выхода из режима сообщений необходимо использовать команды вставки и удаления строк.

Для терминалов Beehive Superbee, которые не умеют посылать коды ESC и CTRL+C, нобходимо указать характеристику xsb, означающую, что вместо ESC будет использоваться клавиша f1, а вместо CTRL+C - клавиша f2.

Похожие терминалы

Если имеются два похожих терминала, то один может быть определен указанием, что он почти такой же, как другой. В символьной характеристике (спецификаторе) use задается имя похожего терминала. Характеристики, предшествующие use, замещают характеристики указанного терминала. Характеристика может быть отменена, указанием xx@ ранее определения самой характеристики xx. Например, описание

att4424-2|Teletype 4424 in display function group ii, rev@, sqr@, smul@, use=att4424,

означает, что терминал AT&T 4424-2 является разновидностью телетайпа AT&T 4424, но не обладает характеристиками rev, sgr и smul, и, следовательно, не может выделять что-либо на экране.

Спецификатор use удобно использовать для различных режимов терминалов или для отражения различных вкусов пользователей. Можно задавать несколько спецификаторов use.

ФАЙЛЫ

/usr/lib/terminfo/?/* Скомпилированная база данных терминалов. /usr/lib/.COREterm/?/* Подмножество скомпилированной базы данных терминалов. /usr/lib/tabset/* Коды, устанавливающие границы и позиции табуляции для конкретных терминалов.



СМ. ТАКЖЕ

, , .

, , , в Справочнике администратора.

в Справочнике пользователя.

ПРЕДОСТЕРЕЖЕНИЯ

Как указано в разделе Табуляции и инициализация, перед использованием пакета необходимо вывести на терминал цепочки символов is1, is2, is3 и файл if. Это можно сделать с помощью команды tput init [см. и ].

Эксперименты с файлами /usr/lib/terminfo/?/* и /usr/ lib/.COREterm/?/* (например, удаление или изменение файла) может повлиять на выполнение программ, таких как vi, которые считают, что в этом месте лежит правильный файл. В частности, удаление описания "ненужного" терминала может привести к непредсказуемым последствиям.

ЗАМЕЧАНИЯ

База данных termcap, которая использовалась в ранних версиях системы UNIX, в будущих версиях может не поддерживаться.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TERMIO(7)


НАЗВАНИЕ

termio - общий терминальный интерфейс

ОПИСАНИЕ

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

Обычно при открытии файла, соответствующего терминалу, процесс ожидает установления соединения. На практике пользовательские программы редко сами открывают такие файлы; они открываются программой и становятся пользовательским стандартным вводом, выводом и протоколом. Самый первый из терминальных файлов, не ассоциированных с группой процессов, при открытии его лидером группы становится управляющим терминалом для данной группы. Управляющий терминал играет особую роль при обработке сигналов выхода и прерывания, как это обсуждается ниже. Управляющий терминал наследуется процессом, порожденным посредством системного вызова . Изменением своей группы [с помощью системного вызова ] процесс может разорвать эту связь.

Терминалы работают в полностью дуплексном (двустороннем) режиме. Символы можно вводить в любой момент времени, даже когда происходит вывод. Потеря символов происходит только в двух случаях: когда переполняется системный буфер вводимых символов (что случается довольно редко) или когда пользователь накопил максимально допустимое число вводимых символов, а никакая программа их не прочитала. В текущей версии этот предел равен 256 символам. Если предел ввода достигнут, буфер сбрасывается и все сохраненные символы теряются без всякого уведомления.

Обычно терминальный ввод обрабатывается построчно. Строка ограничивается символами перевода строки, конца файла или конца строки. Это означает, что при попытке чтения процесс приостанавливается до тех пор, пока не будет введена вся строка. При чтении, независимо от числа запрошенных символов, будет выдано не более одной строки, однако не обязательно всю строку читать сразу: можно запросить любое количество символов (даже один) и информация не будет потеряна.

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


При вводе некоторые символы выполняют специальные функции. Ниже перечислены эти функции и соответствующие подразумеваемые символы:

INTR (символ DEL в кодировке ASCII) Генерирует сигнал прерывания (SIGINT), посылаемый всем процессам, для которых данный терминал является управляющим. Обычно каждый такой процесс терминируется, но есть средства, позволяющие проигнорировать этот сигнал или обработать его по-своему [см. ]. QUIT (CTRL+\, или символ FS в кодировке ASCII) Генерирует сигнал выхода (SIGQUIT), при стандартной реакции на который процесс не только терминируется, но и в текущем каталоге создается файл с образом памяти процесса [см. ]. SWTCH (CTRL+Z, или символ SUB в кодировке ASCII) Используется менеджером семейства shell'ов для переключения между экземплярами shell'а. ERASE (#) Забивает предыдущий символ, но не далее начала строки, отделенного символами NL, EOF или EOL. KILL (@) Уничтожает всю строку, выделенную символами NL, EOF или EOL. EOF (CTRL+D, или символ EOT в кодировке ASCII) Может быть использован для генерации признака конца файла при вводе с терминала. При получении этого символа все буферизованные символы, не ожидая перевода строки, передаются процессу, а сам символ EOF отбрасывается. Таким образом, если буферизованных символов нет, то есть EOF встретился в начале строки, в процесс будет передано 0 символов, что и является стандартным обозначением конца файла. NL (символ LF в кодировке ASCII) Стандартный разделитель строк (перевод строки). Его нельзя изменить или экранировать. EOL (символ NUL в кодировке ASCII) Дополнительный разделитель строк, аналогичный NL. Обычно не используется. EOL2 Еще один дополнительный разделитель строк. STOP (CTRL+S, или символ DC3 в кодировке ASCII) Обычно используется для временной приостановки вывода, когда нужно прочитать текст на экране терминала. Если вывод приостановлен, символы STOP игнорируются и не читаются. START (CTRL+Q, или символ DC1 в кодировке ASCII) Используется для возобновления вывода, приостановленного с помощью символа STOP. Если вывод не приостановлен, то символы START игнорируются и не читаются. Символы START и STOP нельзя изменить или экранировать.



Для выполнения функций INTR, QUIT, SWTCH, ERASE, KILL, EOF и EOL можно назначить символы, отличные от подразумеваемых [см. ]. Символы ERASE, KILL и EOF можно экранировать, то есть лишить их специальных функций, если поместить перед ними символ \.

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

При выполнении записи одного или более символов они передаются терминалу только тогда, когда вывод символов, записанных ранее, завершен. Эхоотображение вводимых символов выполняется посредством их постановки, по мере поступления, в очередь вывода. Если процесс порождает символы быстрее, чем они могут быть выведены, его приостановят, когда размер очереди вывода превысит некоторый предел. При уменьшении очереди до некоторого порогового значения выполнение программы возобновляется.

С помощью системного вызова над терминальными файлами можно выполнять различные управляющие действия. Как правило, при этом используется следующая структура, описанная во включаемом файле <termio.h>:

#define NCC 8 struct termio { unsigned short c_iflag; /* Режимы ввода */ unsigned short c_oflag; /* Режимы вывода */ unsigned short c_cflag; /* Управляющие режимы */ unsigned short c_lflag; /* Локальные режимы */ char c_line; /* Режим работы с линией */ unsigned char c_cc[NCC];/* Управляющие символы */ };

Соответствие управляющих функций и символов задается в массиве c_cc. Ниже приведены номера, приписанные функциям, и подразумеваемые символы:
0VINTRDEL 1VQUITFS 2VERASE# 3VKILL@ 4VEOF (VMIN)EOT 5VEOL (VTIME)NUL 6VEOL2 7VSWTCHSUB Поле c_iflag описывает основные параметры терминального ввода:
IGNBRK0000001Игнорировать ошибки протокола. BRKINT0000002При ошибках протокола генерировать сигнал прерывания. IGNPAR0000004Игнорировать символы с ошибками четности. PARMRK0000010Отмечать ошибки четности. INPCK0000020Разрешить контроль четности. ISTRIP0000040Отбрасывать старший бит. INLCR0000100Преобразовывать перевод строки в возврат каретки. IGNCR0000200Игнорировать возвраты каретки. ICRNL0000400Преобразовывать возврат каретки в перевод строки. IUCLC0001000Преобразовывать большие буквы в малые. IXON0002000Разрешить старт/стопное управление выводом. IXANY0004000Разрешить любому символу возобновлять вывод. IXOFF0010000Разрешить старт/стопное управление вводом. <



/p>

Если установлен бит IGNBRK, то символы с ошибками протокола и четности игнорируются (то есть не поступают в очередь ввода). В противном случае, при установленном бите BRKINT, получение блока данных, содержащего только нули, (нажатие клавиши прерывания) приведет к генерации сигнала прерывания и опустошению очередей ввода/вывода.

Если установлен бит PARMRK, то символы с ошибкой протокола или четности (если они не игнорируются) вводятся в виде последовательности из трех байт: 0377, 0, x, где x - это данные, полученные при возникновении ошибки. Чтобы избежать в этом случае двусмысленности (если бит ISTRIP не установлен) символ 0377 вводится как пара 0377, 0377. Если бит PARMRK не установлен, то при возникновении ошибки (которая не игнорируется) вводится символ NUL (0).

Если установлен бит INPCK, то действует контроль четности при вводе, в противном случае контроль выключен. Это позволяет формировать четность вывода без ошибок четности при вводе.

Если установлен бит ISTRIP, то у допустимых вводимых символов сначала отбрасывается старший бит; в противном случае обрабатываются все 8 бит.

Если установлен бит INLCR, то вводимые символы перевода строки преобразуются в возврат каретки. Если установлен бит IGNCR, то символы возврата каретки игнорируются (не вводятся); в противном случае, если установлен бит ICRNL, символы возврата каретки преобразуются в перевод строки.

Если установлен бит IUCLC, то большие буквы преобразуются в соответствующие малые буквы.

Если установлен бит IXON, то разрешено старт/стопное управление выводом. Полученный символ STOP приостановит вывод, а символ START его возобновит. Все старт/стопные символы игнорируются, то есть не вводятся. Если установлен бит IXANY, то любой введенный символ возобновит приостановленный вывод.

Если установлен бит IXOFF, то система будет передавать старт/стопные символы, когда очередь ввода почти пуста/ заполнена.

В начальном состоянии все биты поля c_iflag равны 0.

Поле c_oflag определяет системную обработку вывода:
OPOST0000001Постпроцессировать вывод. OLCUC0000002Преобразовывать малые буквы в большие. ONLCR0000004Преобразовывать перевод строки в пару (перевод строки, возврат каретки). OCRNL0000010Преобразовывать возврат каретки в перевод строки. ONOCR0000020Не выдавать возврат каретки в нулевой колонке. ONLRET0000040Перевод строки выполняет функции возврата каретки. OFILL0000100Использовать для задержки передачу символов-заполнителей. OFDEL0000200Символом-заполнителем является DEL (по умолчанию - NUL). NLDLY0000400Выбрать задержку для перевода строки: NL00 NL10000400 CRDLY0003000Выбрать задержку для возврата каретки: CR00 CR10001000 CR20002000 CR30003000 TABDLY0014000Выбрать задержку для горизонтальной табуляции: TAB00 TAB10004000 TAB20010000 TAB30014000 Разворачивать табуляцию в пробелы. BSDLY0020000Выбрать задержку для возврата на шаг: BS00 BS10020000 VTDLY0040000Выбрать задержку для вертикальной табуляции: VT00 VT10040000 FFDLY0100000Выбрать задержку для перехода к новой странице: FF00 FF10100000 <



/p>

Если установлен бит OPOST, то выводимые символы постпроцессируются, иначе они передаются на терминал без обработки. Характер обработки определяется остальными битами режима вывода.

Если установлен бит OLCUC, то малые буквы преобразуются при выводе в большие. Данный режим обычно используется вместе с IUCLC.

Если установлен бит ONLCR, то перевод строки преобразуется в пару символов (перевод строки, возврат каретки). Если установлен бит OCRNL, то возврат каретки преобразуется в перевод строки. Если установлен бит ONOCR, то в колонке 0 (первая позиция строки) возврат каретки не выводится. Если установлен бит ONLRET, то предполагается, что перевод строки выполняет функции возврата каретки; номер колонки становится нулевым, используются задержки, определенные для возврата каретки. В противном случае предполагается, что перевод строки служит только для перехода к новой строке: номер колонки не изменяется. Если передается сам символ возврата каретки, номер колонки становится нулевым.

Биты задержки определяют время, на которое прекращается передача. Задержка позволяет выполнить механическое или иное перемещение, вызванное посылкой на терминал некоторых символов. В любом случае 0 означает отсутствие задержки. Если установлен бит OFILL, то вместо временной задержки будет использоваться передача символов-заполнителей. Подобный режим полезен для высокоскоростных терминалов, когда нужна минимальная задержка. Если установлен бит OFDEL, то символом-заполнителем является DEL, в противном случае NUL.

Длительность задержки для вертикальной табуляции или перехода к новой странице составляет примерно 2 секунды.

Задержка для перевода строки равна примерно 0.1 секунды. Если установлен бит ONLRET, то вместо задержки для перевода строки используется задержка для возврата каретки. Если установлен бит OFILL, будут передаваться два символа-заполнителя.

Задержка типа 1 для возврата каретки зависит от текущей колонки, для типа 2 длится примерно 0.1 секунды, для типа 3 - 0.15 секунды. Если установлен бит OFILL, то при задержке типа 1 передаются два символа-заполнителя, при задержке типа 2 - четыре символа.



При горизонтальной табуляции задержка типа 1 зависит от текущей колонки. Для типа 2 она длится около 0.1 секунды. Тип 3 специфицирует, что табуляции должны развертываться в пробелы. Если установлен бит OFILL, то для задержки любого типа передаются два символа-заполнителя.

Задержка для возврата на шаг длится около 0.05 секунды. Если установлен бит OFILL, то будет передаваться один символ-заполнитель.

Фактические задержки зависят от скорости линии связи и загруженности системы.

В начальном состоянии все биты поля c_oflag равны 0.

Поле c_cflag описывает аппаратные характеристики линии и терминала:
CBAUD0000017Скорость передачи: B00Освобождение линии. B50000000150 бод. B75000000275 бод. B1100000003110 бод. B1340000004134 бода. B1500000005150 бод. B2000000006200 бод. B3000000007300 бод. B6000000010600 бод. B120000000111200 бод. B180000000121800 бод. B240000000132400 бод. B480000000144800 бод. B960000000159600 бод. B19200000001619200 бод. EXTA0000016Внешний A. B38400000001738400 бод. EXTB0000017Внешний B. CSIZE0000060Размер символа: CS505 бит. CS600000206 бит. CS700000407 бит. CS800000608 бит. CSTOPB0000100Посылать два стоп-бита, иначе один. CREAD0000200Разрешить прием символов. PARENB0000400Контролировать четность. PARODD0001000Проверка на нечетность, иначе на четность. HUPCL0002000Освобождение линии при последнем закрытии. CLOCAL0004000Локальная линия связи, иначе коммутируемая. RCV1EN0010000 XMT1EN0020000 LOBLK0040000Блокировать вывод экземпляра shell'а. Биты CBAUD определяют скорость передачи данных. Нулевая скорость передачи, B0, используется для прекращения связи и освобождения линии. При нулевой скорости не будет выставляться сигнал готовности терминала к обработке данных, что обычно ведет к разрыву связи. Для любого вида аппаратуры игнорируются не поддерживаемые ею изменения скорости.

Биты CZISE задают размер символа в битах как для передачи, так и для приема данных. В этом размере не учитывается бит четности, если он есть. Если установлен режим CSTOPB, то используется два стоп-бита, в противном случае один. Например, при скорости 110 бод требуется два стоп-бита.



Если установлен режим PARENB, то действует как контроль четности, так и добавление к каждому символу бита четности. Если при этом установлен бит PARODD, выполняется проверка на нечетность, в противном случае - на четность.

Если установлен бит CREAD, то разрешен прием данных, в противном случае символы приниматься не будут.

Если установлен бит HUPCL, то линия связи будет освобождена, когда последний процесс, открывавший ее, закроет линию или завершится. В результате сигнал готовности терминала к обработке данных пропадет.

Если установлен бит CLOCAL, то считается, что линия связи локальная, с прямым соединением без модемного управления. В противном случае предполагается модемное управление.

Если установлен бит LOBLK, то вывод экземпляров shell'а, не являющихся текущими, будет блокироваться. В противном случае вывод разных экземпляров будет мультиплексироваться.

После открытия терминального файла будут установлены следующие аппаратные характеристики: B300, CS8, CREAD, HUPCL.

Поле c_lflag структуры termio используется для детализации режима работы с терминальной линией. Базовый режим (0) обеспечивает следующие возможности:
ISIG0000001Разрешить сигналы. ICANON0000002Канонический ввод (обработка забоя и уничтожения). XCASE0000004Каноническое представление больших/малых букв. ECHO0000010Разрешить эхо. ECHOE0000020Отображать символ забоя как тройку: возврат на шаг, пробел, возврат на шаг. ECHOK0000040Выдавать перевод строки после символа уничтожения. ECHONL0000100Отображать перевод строки. NOFLSH0000200Запретить сброс после прерывания или выхода. Если установлен бит ISIG, то каждый вводимый символ сравнивается со специальными управляющими символами INTR, SWTCH и QUIT. В случае совпадения выполняется соответствующая функция. Если бит ISIG не установлен, то никакой проверки не производится. Таким образом, выполнение упомянутых специальных функций ввода возможно только при установленном бите ISIG. Эти функции могут быть отключены по отдельности, с помощью смены управляющего символа на маловероятное или невозможное значение (например, 0377).



Если установлен бит ICANON, то разрешена каноническая обработка ввода. Это означает разрешение функций редактирования [забоя (ERASE) и уничтожения (KILL)], об единения вводимых символов в строки, разделенные символами NL, EOF и EOL. Если бит ICANON не установлен, то запросы на чтение удовлетворяются прямо из очереди ввода. Запрос на чтение не будет удовлетворен до тех пор, пока не поступит по крайней мере MIN символов или не истечет время задержки TIME между поступлениями символов (то есть время TIME начинает отсчитываться после поступления первого символа). Такой подход позволяет эффективно читать во время вспышек активности ввода и в то же время разрешает посимвольный ввод. Нулевое значение TIME трактуется как бесконечная задержка, то есть запрос на чтение будет удовлетворен, только когда поступит по крайней мере MIN символов. Значения MIN и TIME хранятся соответственно в позициях для символов EOF и EOL (см. включаемый файл <sys/termio.h>). Время задается в десятых долях секунды.

Если установлены биты XCASE и ICANON, то при вводе буква воспринимается как большая, когда перед ней стоит символ \, и выводится в виде пары символов, первый из которых есть \. В этом режиме следующие управляющие последовательности генерируются при выводе и воспринимаются при вводе:
для ввода символа:используйте: `\' |\! ~\^ {\( }\) \\\ Например, A вводится как \a, \n как \\n, а \N как \\\n.

Если установлен бит ECHO, то при получении символа происходит его эхоотображение.

Когда установлен бит ICANON, возможны следующие функции эхоотображения. Если установлены биты ECHO и ECHOE, то символ забоя отображается как тройка ASCII-символов (BS, SP, BS), в результате чего последний из введенных перед этим символов исчезнет с экрана. Если установлен бит ECHOE, а ECHO нет, то символ забоя отображается как пара (SP BS). Если установлен бит ECHOK, то после символа уничтожения будет выведен перевод строки (NL), чтобы подчеркнуть факт уничтожения. Заметим, что символы забоя и уничтожения могут быть экранированы, если перед ними поместить \, и тогда они теряют специальный смысл. Если установлен бит ECHONL, то перевод строки будет отображаться даже в том случае, когда не установлен бит ECHO, что полезно для терминалов с локальным эхоотображением (так называемых полудуплексных). Символ конца файла (EOF) не отображается, если только он не экранирован. Так как подразумеваемым признаком конца файла служит ASCII-символ EOT (конец передачи), эхоотображение конца файла привело бы к освобождению линии терминалами, отвечающими на EOT.



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

В начальном состоянии все биты поля c_lflag равны 0.

Основные системные вызовы для терминальных файлов имеют вид:

ioctl (fildes, command, arg) struct termio *arg;

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

TCGETA Получить параметры, ассоциированные с данным терминалом и поместить их в структуру типа termio, на которую указывает аргумент arg. TCSETA Присвоить параметрам, ассоциированным с данным терминалом, значения из структуры, на которую указывает аргумент arg. TCSETAW Дождаться окончания вывода, прежде чем устанавливать новые параметры. Эту форму следует применять при изменении параметров, влияющих на вывод. TCSETAF Дождаться окончания вывода, затем сбросить очередь ввода и установить новые параметры.

Дополнительные вызовы имеют вид:

ioctl (fildes, command, arg) int arg;

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

TCSBRK Подождать окончания вывода; затем, если arg равен нулю, вызвать нарушение протокола (в течение 0.25 секунды посылать нулевые биты). TCXONC Старт/стопное управление. Если arg равен нулю, то приостановить вывод; если 1, то возобновить приостановленный вывод. TCFLSH Если arg равен 0, то сбросить очередь ввода; если 1, то сбросить очередь вывода; если 2, то сбросить обе очереди.

ФАЙЛЫ

/dev/tty* <sys/termio.h>

СМ. ТАКЖЕ

в Справочнике пользователя.

, , , в Справочнике программиста.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TEST(1)


НАЗВАНИЕ

test - проверка условия

СИНТАКСИС

test выражение [ выражение ]

ОПИСАНИЕ

Команда test применяется для проверки условия. Она вычисляет выражение и, если его значение - истина, возвращает код завершения 0; иначе - ненулевое значение. Ненулевой код возвращается и в случае, когда выражение отсутствует. При проверке прав доступа используется действующий идентификатор пользователя.

Знаки операций, флаги и скобки (см. выше второй способ записи команды test) должны быть отдельными аргументами в командной строке; обычно их разделяют пробелами.

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

-r файл

Истина, если файл существует и доступен для чтения. -w файл

Истина, если файл существует и доступен для записи. -x файл

Истина, если файл существует и является выполняемым. -f файл

Истина, если файл существует и является обычным файлом. -d файл

Истина, если файл существует и является каталогом. -c файл

Истина, если файл существует и является специальным символьным файлом. -b файл

Истина, если файл существует и является специальным блочным файлом. -p файл

Истина, если файл существует и является именованным каналом. -u файл

Истина, если файл существует и его режим содержит бит переустановки идентификатора пользователя. -g файл

Истина, если файл существует и его режим содержит бит переустановки идентификатора группы. -k файл

Истина, если файл существует и его режим содержит бит навязчивости. -s файл Истина, если файл существует и имеет ненулевой размер. -t [дескриптор_файла]

Истина, если открытый файл с указанным дескриптором (по умолчанию 1) существует и ассоциирован с терминалом. -z s1 Истина, если длина цепочки s1 нулевая. -n s1 Истина, если длина цепочки s1 ненулевая. s1 = s2

Истина, если цепочки s1 и s2 равны. s1 != s2

Истина, если цепочки s1 и s2 не равны. s1 Истина, если s1 - непустая цепочка. n1 -eq n2

Истина, если целые числа n1 и n2 алгебраически равны. На месте -eq могут быть также операции сравнения -ne (не равно), -gt (больше), -ge (больше или равно), -lt (меньше), -le (меньше или равно). ( выражение )

Истина, если истинно заключенное в скобки выражение (скобки должны быть экранированы от интерпретации shell'ом). <


/p>

Примитивы могут комбинироваться с помощью следующих операций (в порядке уменьшения приоритета):
! Унарная операция отрицания. -a Логическое И. -o Логическое ИЛИ.

СМ. ТАКЖЕ

, .

ПРЕДОСТЕРЕЖЕНИЯ

Операции = и != имеют больший приоритет, чем операции от -r до -n; кроме того, операциям сравнения нужны аргументы. Следовательно, они не могут быть использованы с операциями от -r до -n.

Если у операций от -r до -n указано более одного аргумента, то обрабатывается только первый из них (остальные игнорируются), если только второй аргумент не есть -a или -o.

СЮРПРИЗЫ

Если посредством операций -r, -w или -x Вы проверяете файл, владельцем которого являетесь, но в режиме этого файла не установлен соответствующий бит для пользователя, код завершения будет ненулевым (ложь), даже если у Вас есть права на файл как у члена группы или прочего пользователя. Для суперпользователя код завершения будет правильным.
Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TIC(1M)


НАЗВАНИЕ

tic - компилятор для базы данных terminfo

СИНТАКСИС

tic [-v[число]] [-c] файл

ОПИСАНИЕ

Утилита tic транслирует файл из исходного формата в скомпилированный. Результат помещается в соответствующий подкаталог каталога /usr/lib/terminfo. Скомпилированный формат необходим для использования подпрограммами библиотеки .

Смысл аргументов утилиты tic:

-v[число]

Выдавать в стандартный протокол сообщения о процессе компиляции. Необязательный аргумент число должен лежать в пределах от 1 до 10 включительно. Чем больше число, тем детальнее выдаваемая информация. Подразумеваемое значение числа равно 1.

-c Только проверить файл на наличие ошибок. При этом ошибки в полях use= не контролируются.

файл Содержит одно или более описаний терминалов в исходном формате [см. ]. Каждое описание задает характеристики конкретного терминала. Если при компиляции встречается поле use=терминал, то утилита tic дополняет описание, используя двоичный файл из каталога /usr/lib/terminfo (если терминал описан в файле, то используется описание из файла; если установлена переменная окружения TERMINFO, то ее значение используется вместо /usr/lib/ terminfo). Утилита tic при этом дублирует все характеристики терминала в генерируемом описании, кроме тех, которые явно заданы в исходном описании.

Если установлена переменная окружения TERMINFO, то ее значение используется вместо /usr/lib/terminfo для помещения результатов компиляции.

ПРЕДОСТЕРЕЖЕНИЯ

Общий размер скомпилированного описания не должен превышать 4096 байт. Поле имени не должно превышать 128 байт.

Имена терминалов, состоящие более чем из 14 символов, будут обрезаны до 14 символов, при этом будет выдано предупреждение.

Если используется опция -c, одинаковые имена терминалов не диагностируются, однако без опции -c диагностика выдается.

ДИАГНОСТИКА

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

mkdir ... returns bad status

Указанный каталог не может быть создан.

File does not start with terminal names in column one


Первым элементом файла, после комментариев, должен быть список имен терминалов.

Token after seek(2) not NAMES

Видимо, компилируемый файл изменился во время компиляции.

Not enough memory for use_list element или Out of memory

Программе не хватает доступной памяти [malloc(3C) завершился неудачей].

Can't open ...

Указанный файл не может быть создан.

Error in writing ...

В указанный файл нельзя писать.

Can't link ... to ...

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

Error in re-reading compiled file ...
Скомпилированный файл не может быть повторно считан.

Premature EOF

Описание кончилось, хотя компилятор ожидал продолжения.

Backspaced off beginning of line

Эта ошибка означает, что с компилятором что-то не в порядке.

Unknown Capability - "..."

Обнаружена указанная неизвестная характеристика.

Wrong type used for capability

Например, булевой характеристике задается числовое значение.

Unknown token type

За именем поля должен следовать один из символов: @ для отмены, , для булева поля, # для числового, = для поля, содержащего цепочку символов.

"..." : bad term name или Line ...: Illegal terminal name - "..."

Указанное имя некорректно. Имена не должны включать пробелы и символы / и должны начинаться с буквы или цифры.

"..." : terminal name too long

Обнаружено слишком длинное имя терминала.

"..." : terminal name too short

Обнаружено односимвольное имя терминала.

"..." : filename too long, truncating to "..."

Указанное имя файла обрезано до 14 символов из-за ограничений системы UNIX на длину имен файлов.

"..." defined in more than one entry. Entry being used is "..."

Повторное описание характеристик.

Terminal name "..." synonym for itself

Имя указано дважды в списке синонимов.

At least one synonym must begin with a letter

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

Illegal character - "..."

Обнаружен некорректный символ.

Newline in middle of terminal name



Список имен терминалов не завершается запятой.

Missing comma

Пропущена запятая.

Missing numeric value

После числовой характеристики не указано значение.

NULL string value

Чтобы сказать, что характеристика, описываемая цепочкой символов, отсутствует, надо отменить ее.

Very long string found. Missing comma?

Обнаружена очень длинная цепочка символов.

Unknown option. Usage is: ...

Неизвестная опция.

Too many file names. Usage is:

В командной строке можно указать только одно имя файла.

"..." non-existant or permission denied

В указанный каталог нельзя писать.

"..." is not a directory

Указанный файл не является каталогом.

"..." permission denied

Нет прав доступа.

"...": Not a directory

Утилита tic хочет использовать указанное имя, как имя каталога, но уже существует файл с таким именем.

SYSTEM ERROR!! Fork failed!!!

Системный вызов закончился неудачей.

Error in following up use-links. Either there is a loop in the links or they reference non-existant terminals. The following is a list of entries involved:

Либо в описании использован use=терминал, а терминал не существует, либо терминал каким-либо образом ссылается на данное описание.

ФАЙЛЫ

/usr/lib/terminfo/?/* Скомпилированная база данных опи- саний терминалов.

СМ. ТАКЖЕ

, , в Справочнике программиста.

СЮРПРИЗЫ

Чтобы существующие выполняемые файлы из старых версий системы UNIX могли использовать базу данных terminfo, порождаемую новым компилятором, отмененные характеристики не помечаются как отмененные в скомпилированном формате, если в имя терминала не входит символ +. Такие имена терминалов используются только для включения в другие описания с помощью use=. Они не должны использоваться для реальных терминалов.

Пример:

4415+nl, kf1@, kf2@, ... 4415+base, kf1=\EOc, kf2=\EOd, ... 4415-nl|4415 terminal without keys use=4415+nl,use=4415+base,

Этот пример работает так, как и ожидается, определения для клавиш в описании терминала 4415-nl отсутствуют. Однако, если бы в имени терминала 4415+nl отсутствовал +, то отмена клавиш не занеслась бы в скомпилированный файл и определения клавиш в описании терминала 4415-nl сохранились бы.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TID(1)


ИМЯ

tid - декомпилятор terminfo.

СИНТАКСИС

tid [term]

ОПИСАНИЕ

Команда tid декомпилирует описание терминала term, первоначально откомпилированное командой . Если параметр term не определен, то используется установка переменной среды TERM.

ФАЙЛЫ

/usr/lib/terminfo/*/* откомпилированная база данных, описы- вающая возможности терминала.

СМ. ТАКЖЕ

, terminfo(3), .

ЗАМЕЧАНИЯ

Выходная информация команды tid не является входными данными для команды tic.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TIME(1)


НАЗВАНИЕ

time - измерение времени выполнения команды

СИНТАКСИС

time команда

ОПИСАНИЕ

Заданная команда выполняется; после ее завершения выдается следующая информация:

real астрономическое время выполнения команды; user время ЦП, истраченное командой; sys время ЦП, истраченное системой.

Время сообщается в секундах; если время больше минуты, результат имеет вид минуты:секунды.

Результаты измерений выводятся командой time в стандартный протокол.

СМ. ТАКЖЕ

.

в Справочнике программиста.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TIMES(2)


НАЗВАНИЕ

times - получение информации о времени выполнения процесса и порожденных процессов

СИНТАКСИС

#include <sys/types.h> #include <sys/times.h>

long times (buffer) struct tms *buffer;

ОПИСАНИЕ

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

struct tms { time_t tms_utime; time_t tms_stime; time_t tms_cutime; time_t tms_cstime; };

Поступает информация о вызывающем процессе и завершившихся порожденных процессах, для которых был выполнен системный вызов . Единица измерения времени определяется величиной HZ в файле <sys/param.h>. В данной реализации время измеряется в 1/60 долях секунды.

tms_utime Время ЦП, израсходованное вызывающим процессом в режиме пользователя. tms_stime Время ЦП, израсходованное операционной системой для обслуживания вызывающего процесса. tms_cutime Суммарное время ЦП, израсходованное вызывающим процессом и порожденными им процессами в режиме пользователя. tms_cstime Суммарное время ЦП, израсходованное операционной системой на обслуживание вызывающего процесса и порожденных им процессов.

Системный вызов times завершается неудачей, если выполнено следующее условие:

[EFAULT] Значением аргумента buffer является недопустимый адрес.

СМ. ТАКЖЕ

, , , .

ДИАГНОСТИКА

При успешном завершении возвращается время, прошедшее после вызова системы. В случае ошибки возвращается -1, а переменной errno присваивается код ошибки.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TIMEX(1)


НАЗВАНИЕ

timex - измерение характеристик процесса и активности всей системы

СИНТАКСИС

timex [-p [-f] [-h] [-k] [-m] [-r] [-t]] [-o] [-s] команда

ОПИСАНИЕ

Указанная команда выполняется, после чего, как и в случае , выводятся данные о времени ее работы. Может быть получена дополнительная информация о процессе и его потомках, а также об общей системной активности во время выполнения команды.

Результаты измерений выдаются командой timex в стандартный протокол.

Опциям команды timex приписан следующий смысл:

-p Вывести данные о процессе и его потомках. Дополнительные опции -f, -h, -k, -m, -r и -t указывают, какие именно сведения выводить [см. ]: -f Выводить флаг fork/exec и системный код завершения. -h Вместо расхода памяти сообщать, какую часть доступного времени ЦП использовал процесс во время своего выполнения. Этот коэффициент нахальства вычисляется как отношение (время ЦП)/(общее время выполнения). -k Вместо расхода памяти выводить произведение количества килобайт памяти на число минут ЦП. -m Выводить расход памяти (это опция по умолчанию). -r Выводить коэффициент использования ЦП: (время пользователя)/(время системы + время пользователя). -t Выводить отдельно время ЦП, затраченное пользователем и системой. Количество прочитанных или записанных блоков и количество переданных символов выдается всегда. -o Вывести количество прочитанных или записанных блоков и количество переданных символов как самой командой, так и всеми ее потомками. -s Вывести сведения о всей системной активности (не только относящейся к команде), имевшей место во время выполнения команды. Выводятся все данные, перечисленные в .

ПРИМЕРЫ

Простой пример:

timex -ops sleep 60

Деятельность любой сложности может быть замерена следующим образом:

timex -opskmt sh команды CTRL+D

ФАЙЛЫ

/usr/adm/pacct Информация о процессах.

СМ. ТАКЖЕ

, .

в Справочнике администратора.

СЮРПРИЗЫ

Сведения о команде берутся из файла /usr/adm/pacct. Сведения о фоновых процессах, имеющих одинаковый идентификатор пользователя, идентификатор терминала и выполнявшихся в один и тот же промежуток времени, будут перемешиваться.

Команда timex выполняет команду с опциями -S и -E, которые работают неверно. В результате и в самой команде timex опции -p и -o не работают.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TIMEZONE(4)


НАЗВАНИЕ

timezone - установка подразумеваемого часового пояса

СИНТАКСИС

. /etc/TIMEZONE

ОПИСАНИЕ

Данный файл устанавливает значение переменной окружения TZ, идентифицирующей местный часовой пояс, и экспортирует эту переменную.

Рекомендуется, чтобы всякая shell-процедура, в которой используется информация о местном часовом поясе, выполняла этот файл в рамках текущего процесса посредством встроенной команды shell'а "точка".

ПРИМЕР

Файл /etc/TIMEZONE для восточного побережья США:

# Часовой пояс TZ=EST5EDT export TZ

СМ. ТАКЖЕ

, .

в Справочнике пользователя.

в Справочнике администратора.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TIMOD(7)


НАЗВАНИЕ

timod - модуль псевдоустройства для взаимодействия с Транспортным Интерфейсом

ОПИСАНИЕ

Timod - это модуль псевдоустройства, обеспечивающий использование функций Транспортного Интерфейса библиотеки сетевых услуг. Модуль timod преобразует набор системных вызовов в сообщения псевдоустройств, которые затем передаются модулю, обеспечивающему транспортный интерфейс. Эта схема позволяет выполнять функции Транспортного Интерфейса как атомарные, неделимые действия.

Модуль timod должен использоваться в потоке, который завершается модулем, обеспечивающим Транспортный Интерфейс [см. ].

Модуль timod передает следующему модулю потока без изменений все сообщения псевдоустройств, кроме перечисленных ниже, генерируемых по системному вызову . Сообщения от перечисленных ниже команд ioctl распознаются и обрабатываются модулем timod. Формат вызова ioctl следующий:

#include <sys/stropts.h>

struct strioctl strioctl;

strioctl.ic_cmd = команда; strioctl.ic_timeout = INFTIM; strioctl.ic_len = размер; strioctl.ic_dp = (char *) буфер;

ioctl (fildes, I_STR, &strioctl);

В поле ic_len указывается размер сообщения, передаваемого модулю Транспортного Интерфейса, при возврате это поле содержит размер ответного сообщения, полученного от модуля Транспортного Интерфейса. В поле ic_dp помещается ссылка на буфер, содержащий посылаемое сообщение. Размер буфера должен быть достаточен для приема ответного сообщения. Возможные типы сообщений определены во включаемом файле <sys/tihdr.h>. Ниже перечислены допустимые значения поля ic_cmd:

TI_BIND Присоединить адрес к нижележащему транспортному протоколу. Сообщение, выдаваемое по команде TI_BIND, имеет тип T_BIND_REQ. Сообщение, возвращаемое при нормальном завершении системного вызова ioctl, имеет тип T_BIND_ACK. TI_UNBIND Отсоединить адрес от нижележащего транспортного протокола. Сообщение, выдаваемое по команде TI_UNBIND, имеет тип T_UNBIND_REQ. Сообщение, возвращаемое при нормальном завершении системного вызова ioctl, имеет тип T_OK_ACK. TI_GETINFO Получить информацию о состоянии транспортного протокола. Сообщение, выдаваемое по команде TI_GETINFO, имеет тип T_INFO_REQ. Сообщение, возвращаемое при нормальном завершении системного вызова ioctl, имеет тип T_INFO_ACK. TI_OPTMGMT Выполнить специфические операции транспортного протокола. Сообщение, выдаваемое по команде TI_OPTMGMT, имеет тип T_OPTMGMT_REQ. Сообщение, возвращаемое при нормальном завершении системного вызова ioctl, имеет тип T_OPTMGMT_ACK.


ФАЙЛЫ

<sys/timod.h> <sys/tiuser.h> <sys/tihdr.h> <sys/errno.h>

СМ. ТАКЖЕ

.

ДИАГНОСТИКА

Если системный вызов ioctl возвращает значение, большее 0, то младшие 8 бит этого значения содержат код ошибки Транспортного Интерфейса (коды ошибок определены во включаемом файле <sys/tiuser.h>). Если код ошибки имеет значение TSYSERR, следующие 8 бит возвращаемого значения содержат системный код ошибки [системные коды ошибок определены во включаемом файле <sys/errno.h>, см. ].








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TIRDWR(7)


НАЗВАНИЕ

tirdwr - модуль псевдоустройства интерфейса ввода/вывода для Транспортного Интерфейса

ОПИСАНИЕ

Tirdwr - это модуль псевдоустройства, обеспечивающий дополнительный интерфейс к транспортному протоколу, выполняющему функции Транспортного Интерфейса библиотеки сетевых услуг. Этот дополнительный интерфейс дает возможность пользователю взаимодействовать с транспортным протоколом с помощью системных вызовов и . Системные вызовы и при этом можно использовать только для обмена данными между пользователем и потоком.

Модуль tirdwr должен использоваться в потоке, который завершается модулем транспортного протокола, обеспечивающим Транспортный Интерфейс [см. I_PUSH в ]. После того, как модуль tirdwr помещается в поток, функции Транспортного Интерфейса становятся недоступными, попытка обращения к какой-нибудь функции Транспортного Интерфейса вызывает ошибку в потоке, при этом все последующие обращения к потоку заканчиваются неудачей, а переменной errno присваивается значение EPROTO.

Ниже описываются действия, которые выполняет модуль tirdwr, когда его помещают в поток [см. I_PUSH в ], удаляют из потока [см. I_POP в ], а также при прохождении через него данных.

Помещение модуля в поток Когда модуль tirdwr помещается в поток, он выполняет проверку всех существующих сообщений для данного пользователя, чтобы гарантировать их полноту и целостность. Игнорируются все сообщения, влияющие на управление процессами, например, сообщения, генерирующие сигналы процессам, связанным с потоком. Если обнаруживается какое-нибудь другое сообщение, I_PUSH завершается неудачей, а переменной errno присваивается значение EPROTO. Запись в поток Модуль tirdwr выполняет следующие действия над данными, записываемыми в поток с помощью системного вызова :

Все сообщения, имеющие область данных нулевой длины, удаляются из потока и вниз не передаются. Все остальные сообщения, за исключением тех, которые содержат управляющую область [см. и ], без изменений передаются вниз соседнему модулю потока. Все сообщения, имеющие управляющую область, вызывают ошибку в потоке, при этом все последующие обращения к потоку заканчиваются неудачей, а переменной errno присваивается значение EPROTO.


Чтение из потока Модуль tirdwr выполняет следующие действия над данными, поступающими от модуля транспортного протокола:

Все сообщения, за исключением тех, которые содержат управляющую область [см. и ], без изменений передаются вверх соседнему модулю потока. Все сообщения, имеющие область данных нулевой длины, удаляются из потока и вверх не передаются. Сообщения, имеющие управляющую область, вызывают следующие действия:

Сообщения, задающие ускоренную передачу, вызывают ошибку в потоке, при этом все последующие обращения к потоку заканчиваются неудачей, а переменной errno присваивается значение EPROTO. В сообщениях, имеющих и управляющую область, и область данных, перед передачей сообщения наверх соседнему модулю управляющая область удаляется. Сообщение от модуля транспортного протокола, свидетельствующее о нормальном завершении соединения, сгенерирует сообщение с пустой управляющей областью и областью данных нулевой длины, представляющее конец файла. Это сообщение посылается пользователю, читающему из потока. Само сообщение о нормальном завершении соединения удаляется из потока. Сообщение от модуля транспортного протокола, свидетельствующее об аварийном завершении соединения, приводят к тому, что все последующие обращения к потоку с помощью системных вызовов и заканчиваются неудачей с присваиванием переменной errno значения ENXIO. Обращения к потоку с помощью системных вызовов и , после того, как все имеющиеся данные будут считаны, вернут сообщение с областью данных нулевой длины, представляющее конец файла. Все остальные сообщения с непустой управляющей областью вызывают ошибку в потоке, при этом все последующие обращения к потоку заканчиваются неудачей, а переменной errno присваивается значение EPROTO.

Удаление модуля из потока Когда модуль tirdwr удаляется из потока, а также при закрытии потока выполняются следующие действия:

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

СМ. ТАКЖЕ

, .

, , , , , в Справочнике программиста.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TM(1)


НАЗВАНИЕ

tm - связывание стандартного ввода/вывода с последова- тельным портом

СИНТАКСИС

tm номер_порта

ОПИСАНИЕ

Команда tm открывает последовательный порт с указанным номером и связывает его со стандартным вводом/выводом. Это означает, что все данные, пришедшие из порта, передаются на стандартный вывод, а каждый символ, пришедший со стандартного ввода (например, с клавиатуры), посылается в порт.

После ввода комбинации символов ~. связь разрывается.

ФАЙЛЫ

/dev/tty* Последовательные порты.

СМ. ТАКЖЕ

.

СЮРПРИЗЫ

Необходимо обладать правами, достаточными для открытия файла /dev/ttyномер_порта.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TMPFILE(3S)


НАЗВАНИЕ

tmpfile - создание временного файла

СИНТАКСИС

#include <stdio.h>

FILE *tmpfile ( )

ОПИСАНИЕ

Функция tmpfile создает временный файл с именем, сгенерированным функцией , и возвращает указатель на соответствующую структуру FILE. Если файл не может быть открыт, то посредством печатается сообщение об ошибке и возвращается пустой указатель, NULL. Файл автоматически удаляется, когда завершается использующий его процесс. Файл открывается для работы в режиме изменения ("w+").

СМ. ТАКЖЕ

, , , , , , .

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TMPNAM(3S)


НАЗВАНИЕ

tmpnam, tempnam - создание имен временных файлов

СИНТАКСИС

#include <stdio.h>

char *tmpnam (s) char *s;

char *tempnam (dir, pfx) char *dir, *pfx;

ОПИСАНИЕ

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

Функция tmpnam всегда образует имя файла, используя маршрутный префикс, определяемый константой P_tmpdir во включаемом файле <stdio.h>. Если указатель s пустой (равен NULL), то функция помещает результат во внутреннюю статическую область и возвращает адрес этой области. При следующем вызове tmpnam содержимое статической области изменится. Если s не равно NULL, то его значение рассматривается как адрес массива длины не менее L_tmpnam байт, где L_tmpnam - константа, определенная в <stdio.h>; функция помещает результат в этот массив и возвращает s.

Функция tempnam дает пользователю возможность выбирать каталог. Аргумент dir указывает на имя каталога, в котором нужно создать файл. Если dir равен NULL или ссылается на цепочку символов, не являющуюся именем подходящего каталога, то имя строится с использованием константы P_tmpdir. Если и этот каталог недоступен, в качестве последнего шанса будет использован /tmp. Указанная последовательность действий игнорируется, если определена переменная окружения TMPDIR; именно ее значение задает имя каталога временных файлов.

Во многих случаях предпочтительны имена файлов, начинающиеся определенной последовательностью символов. Для создания таких имен предусмотрен аргумент pfx. Этот аргумент может иметь значение NULL или быть ссылкой на цепочку длиной до 5 символов, которая должна использоваться в качестве первых символов имени временного файла.

Функция tempnam вызывает функцию для получения области памяти под конструируемое имя, и возвращает ссылку на эту область. Таким образом, значение указателя, возвращаемого функцией tempnam, может служить аргументом функции free [см. ]. Если tempnam по каким-либо причинам не может возвратить ожидаемый результат (например, неудачно завершилась функция malloc или не удалось найти подходящий каталог), то возвращается пустой указатель.

ПРИМЕЧАНИЯ


При каждом обращении эти функции создают новое имя.

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

СМ. ТАКЖЕ

, , , , , .

ОГРАНИЧЕНИЯ

При вызове более 17576 раз в одном процессе эти функции начнут циклически выдавать уже созданные ранее имена.

В промежутке между образованием имени файла и его открытием другой процесс может создать файл с тем же именем. Этого никогда не случится, если упомянутый "другой" процесс создает файл с помощью описываемых функций или функции mktemp, а имена файлов выбираются так, чтобы дублирование по другим причинам было маловероятным.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TOC(1G)


НАЗВАНИЕ

toc - создание и графический вывод оглавлений

СИНТАКСИС

имя_команды [опция ...] [файл ...]

ОПИСАНИЕ

Описанные ниже команды расположены в каталоге /usr/bin/graf [см. ].

dtoc [каталог]

Команда dtoc записывает на стандартный вывод текстовое оглавление (ТОГ), всех подкаталогов указанного каталога (по умолчанию используется текущий каталог). На каждый каталог в оглавлении отводится по одной строке. Строка состоит из трех полей: номер, показывающий место (под)каталога в иерархии, его имя и число обычных файлов, доступных на чтение. Команда dtoc полезна для того, чтобы получить наглядное представление обо всей файловой системе или ее части. Чтобы изобразить все доступные каталоги на экране терминала типа Tektronix 4010, достаточно построить конвейер:

dtoc / | vtoc | td

vtoc [-c] [-d] [-i] [-m] [-s] [-hпромежуток] [-vпромежуток] [ТОГ_файл]

Команда vtoc по текстовому представлению оглавления (ТОГ) создает графический образ в виде GPS-файла [см. ]. Графический образ состоит из прямоугольников с текстом, образующих древовидную структуру. Если ТОГ_файл не задан, используется стандартный ввод. Каждая строка ТОГ_файла описывает один прямоугольник и имеет следующий вид:

номер [толщина,тип] "текст" [метка]

номер

Чередующаяся последовательность чисел и точек, задает положение элемента оглавления в иерархии. Номер 0. определяет корень дерева.

толщина

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

n тонкая линия m средняя линия b толстая линия

тип

Тип линий может быть следующим:

so сплошная линия do точечная линия dd штрихпунктирная линия da пунктирная линия ld длинно-пунктирная линия

текст

Текст - это цепочка символов, заключенная в кавычки. Текст между кавычками становится содержимым прямоугольника. Чтобы включить в текст кавычку, ее нужно экранировать (\").

метка

Метка - это цепочка символов. Метка надписывается над правым верхним углом прямоугольника. Символы метки, интерпретируемые shell'ом, должны быть экранированы.

Пример элемента оглавления:


1.1 b,da "udd" USER

Элементы оглавления могут занимать больше одной строки, если промежуточные переводы строк экранированы.

В произвольном месте ТОГ_файла могут располагаться комментарии, окруженные парами символов /* и */.

Опции команды vtoc:

-c Использовать текст так, как он введен (по умолчанию все буквы преобразуются в строчные).

-d Соединять прямоугольники диагональными линиями.

-i Не выводить номера прямоугольников.

-m Не выводить метки прямоугольников.

-s Не уплотнять прямоугольник по горизонтали.

-hпромежуток

Задает отношение в процентах горизонтального промежутка между прямоугольниками и ширины прямоугольника.

-vпромежуток

Задает отношение в процентах вертикального промежутка между прямоугольниками и высоты прямоугольника.

СМ. ТАКЖЕ

.

в Справочнике программиста.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TOP(7)XENIX System V (1 янвapя 1989)


НАЗВАНИЕ

top, top.next - фaйлы тoпoлoгии ceти Micnet

ОПИСАНИЕ

Эти фaйлы coдepжaт тoпoлoгичecкyю инфopмaциию, т.e. инфopмaцию o тoм, кaк oтдeльныe cиcтeмы в ceти cвязaны, кaким пyтeм пepeдaeтcя cooбщeниe oт oднoй cиcтeмы к дpyгoй. Kaждый фaйл coдepжит oднy или бoлee тeкcтoвыx cтpoк, oпpeдeляющиx cвязь или пyть пepeдaчи.

Фaйл top oпpeдeляeт cвязь мeждy cиcтeмaми в ceти. Kaждaя cтpoкa в фaйлe coдepжит имeнa мaшин cвязaнныx cиcтeм, пocлeдoвaтeльнyю линию, иcпoльзyeмyю для cвязи, и cкopocть пepeдaчи в бoдax. Cтpoкa имeeт фopмaт:

machine1 tty1a machine2 tty2a speed

Machine1, machine2 - имeнa мaшин, yкaзaнныe в фaйлe systemid, ttys - имeнa ycтpoйcтв (нaпpимep, tty1a), coeдинeнныx пocлeдoвaтeльнoй линиeй. Cкopocть зaдaeтcя в бoдax (нaпpимep, 110, 300, ..., 19200).

Фaйл top.next coдepжит инфopмaцию o пyти дocтyпa к oпpeдeлeннoй cиcтeмe. Kaждaя cтpoкa в фaйлe coдepжит мaшиннoe имя cиcтeмы, cвязaннoй c дaннoй cиcтeмoй, дaлee cлeдyют мaшинныe имeнa cиcтeм, дocтyпныx для пepвoй cиcтeмы чepeз втopyю. Cтpoкa имeeт фopмaт:

machine1 machine2 machine3 [machine4]...

Фaйл top.next дoлжeн пpиcyтcтвoвaть дaжe в тoм cлyчae, кoгдa в ceти вceгo двa кoмпьютepa. B этoм cлyчae фaйл пycтoй.

Bce cтpoки фaйлoв top и tp.next, нaчинaющиecя c cимвoлa `#', cчитaютcя кoммeнтapиeм и игнopиpyютcя.

ФАЙЛЫ

/usr/lib/mail/top /usr/lib/mail/top.next

СМ. ТАКЖЕ

aliases(5), netutil(1),

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TOUCH(1)


НАЗВАНИЕ

touch - изменение времени доступа и модификации файла

СИНТАКСИС

touch [-a] [-m] [-c] [время] файл ...

ОПИСАНИЕ

Команда touch изменяет времена доступа и модификации всех файлов-аргументов. Если файл с указанным именем не существует, то он создается. Время задается в том же формате, что и для команды :

ммддччмм[гг]

(месяц, день, часы, минуты, год). Если время не указано, то используется текущее время.

Опциям команды touch приписан следующий смысл:

-a Изменить только время последнего доступа. -m Изменить только время последней модификации. -c Не создавать файлы, если они не существуют.

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

СМ. ТАКЖЕ

.

в Справочнике программиста.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TPLOT(1G)


НАЗВАНИЕ

tplot - графические фильтры

СИНТАКСИС

tplot [-Tтерминал [-e файл]]

ОПИСАНИЕ

Команда tplot считывает команды графопостроителя [см. ] со стандартного ввода и выдает на стандартный вывод графические команды, ориентированные на определенный тип терминала (особым образом обрабатывается терминал ver). Если терминал не задан, используется значение переменной окружения $TERM [см ].

Допустимы следующие типы терминалов:

300 DASI 300. 300S DASI 300s. 450 DASI 450. 4014 Tektronix 4014. ver Принтер-плоттер Versatec D1200A. В этом случае растровый образ запоминается в файле /usr/tmp/raster$$ и тут же выдается на устройство, а не на стандартный вывод. Смысл опции:

-e файл

Вывести на плоттер растровый образ, предварительно сохраненный в файле.

ФАЙЛЫ

/usr/lib/t300 /usr/lib/t300s /usr/lib/t450 /usr/lib/t4014 /usr/lib/vplot /usr/tmp/raster$$

СМ. ТАКЖЕ

.

, , environ (5), в Справочнике программиста.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TPUT(1)


НАЗВАНИЕ

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

СИНТАКСИС

tput [-T тип_терминала] имя_атрибута [аргумент ...] tput [-T тип_терминала] init tput [-T тип_терминала] reset tput [-T тип_терминала] longname

ОПИСАНИЕ

С помощью команды tput, использующей базу данных , shell [см. ] получает доступ к информации и характеристикам, зависящим от типа конкретного терминала. Посредством этой команды можно также инициализировать или переустановить терминал, получить длинное имя запрашиваемого типа терминала. Если атрибут с заданным именем является цепочкой символов, то команда tput возвращает цепочку символов; если атрибут является целым числом, то возвращается целое число. Если же атрибут логического типа, то tput просто устанавливает код завершения [0 (истина), если терминал имеет данную характеристику; 1 (ложь), если он ее не имеет] и ничего не выводит. Прежде чем использовать выданное на стандартный вывод значение, следует проверить код завершения [$?, см. ]. Полный список атрибутов (характеристик) терминалов и их имен можно найти в .

-T тип_терминала

Явное задание типа терминала. Обычно данная опция не нужна, так как по умолчанию используется значение переменной окружения $TERM. Если опция -T задана, то переменные shell'а LINES и COLUMNS не используются.

имя_атрибута

Обозначает атрибут базы данных .

аргумент

Если атрибут есть цепочка символов и требует аргументов, они берутся из командной строки. Чисто числовой аргумент передается как число.

init Если база данных существует и пользовательский терминал в ней описан (см. выше опцию -T), то происходит следующее:

Выводятся (если они есть) цепочки символов, инициализирующие терминал (is1, is2, is3, if, iprog). Любые задержки (например, перевод строки), указанные в описании, будут установлены в драйвере tty. В соответствии со спецификацией будет включен или выключен режим преобразования табуляции в последовательность пробелов. Если символы табуляции не преобразуются в последовательность пробелов, будут установлены стандартные позиции табуляции (каждая восьмая).


Если описание не содержит информации, необходимой для какого-либо шага, этот шаг просто опускается.

reset Вместо вывода символов инициализации будут выве дены (если они есть) цепочки символов переуста новки (rs1, rs2, rs3, rf). Если таких цепочек нет, но есть цепочки инициализации, то будут вы ведены последние. Во всем остальном reset дейст вует аналогично init.

longname

Если база данных существует и пользовательский терминал в ней описан (см. выше опцию -T), то выводится длинное имя терминала. Длинное имя - это последнее имя в первой строке описания терминала в базе [см. ].

ПРИМЕРЫ



Инициализировать терминал в соответствии с его типом, заданным переменной окружения TERM. Данную команду следует включать в профайл после экспортирования переменной TERM [см. ]:

tput init

Переустановить терминал типа vt100, не принимая во внимание переменную окружения TERM:

tput -T vt100 reset

Послать управляющую последовательность для установки курсора в левый верхний угол экрана:

tput cup 0 0

Послать управляющую последовательность, очищающую экран:

tput clear

Вывести число колонок на экране используемого терминала:

tput cols

Установить код завершения, отражающий возможность получения на текущем терминале твердой копии экрана:

tput hc

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

tput longname

ФАЙЛЫ

/usr/lib/terminfo/?/* Скомпилированная база данных описаний терминала. /usr/include/curses.h Файл заголовка для . /usr/include/term.h Файл заголовка для . /usr/lib/tabset/* Установки позиций табуляции для некоторых терминалов в формате, приемлемом для вывода (управля- ющие последовательности, уста- навливающие границы и позиции табуляций) [см. ].

СМ. ТАКЖЕ

, . , в Справочнике программиста.

КОДЫ ЗАВЕРШЕНИЯ

Если атрибут - логического типа, то 0 обозначает значение истина, а 1 - ложь.

Если атрибут имеет тип цепочки символов, то устанавливается значение 0 в случае, если этот атрибут определен для данного типа терминала (значение атрибута выдается на стандартный вывод); значение 1 устанавливается, если атрибут не определен для данного типа терминала (на стандартный вывод выдается пустое значение).

Если атрибут - целого типа, то всегда устанавливается значение 0, независимо от того, определен ли атрибут для данного типа терминала. Для того, чтобы выяснить, определен ли атрибут, надо проверить выдаваемое на стандартный вывод значение. -1 означает, что атрибут не определен для данного типа терминала.

Любой другой код завершения означает ошибку.

ДИАГНОСТИКА



Команда tput при ошибках выдает в стандартный протокол следующие сообщения и возвращает такие коды завершения:
Код Сообщение об ошибке 0 -1 (выдается на стандартный вывод). Атрибут является числовым и для данного типа терминала не определен. 1 Сообщение об ошибке не выводится, см. выше КОДЫ ЗАВЕРШЕНИЯ. 2 Неверное использование команды. 3 Неизвестный тип терминала или нет базы данных . 4 Неизвестное для имя_атрибута.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TR(1)


НАЗВАНИЕ

tr - преобразование символов

СИНТАКСИС

tr [-c] [-d] [-s] [цепочка_1 [цепочка_2]]

ОПИСАНИЕ

Команда tr копирует стандартный ввод на стандартный вывод с заменой либо удалением выбранных символов. Введенные символы, найденные в цепочке_1, заменяются на соответствующие символы из цепочки_2. Допускаются любые комбинации опций -cds:

-c Цепочка_1 заменяется ее дополнением до множества ASCII-символов с восьмеричными кодами от 001 до 377. -d Все входные символы, принадлежащие цепочке_1, будут удалены. -s Последовательности одинаковых входных символов, принадлежащих цепочке_2, сжимаются до одного.

Чтобы помещать в цепочки отрезки алфавита и повторяющиеся символы, можно использовать следующие сокращения:

[c1-c2]

Обозначает цепочку символов, коды ASCII которых принадлежат отрезку от кода символа c1 до c2. [c*n]

Обозначает символ c, повторенный n раз. Если первая цифра в n есть 0, n рассматривается как восьмеричное число; иначе - как десятичное. Нулевое или отсутствующее n воспринимается как "очень много"; эта возможность полезна при дополнении цепочки_2 до длины цепочки_1.

Управляющий символ \ можно использовать, как и в языке shell, чтобы отменить трактовку символа в цепочке-аргументе как специального. Кроме того, \, за которым идут одна, две или три восьмеричные цифры, обозначает символ, код ASCII которого выражается этими цифрами.

ПРИМЕР

Следующая команда помещает список всех слов из файла f1, по одному на строку, в файл f2. Под словом понимается максимальная последовательность букв. Цепочки-аргументы берутся в кавычки, чтобы shell не интерпретировал специальные символы; 012 - ASCII-код перевода строки.

tr -cs "[A-Z][a-z]" "[\012*]" f2

СМ. ТАКЖЕ

, .

в Справочнике программиста.

СЮРПРИЗЫ

Символ ASCII NUL (код 000) не может входить ни в цепочку_1, ни в цепочку_2; всегда удаляется из ввода.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TRANSLATE(1)


ИМЯ

translate - преобразовывает файлы из одного формата в другой.

СИНТАКСИС

translate option [infile][outfile]

ОПИСАНИЕ

Команда translate преобразовывает файлы согласно определенным опциям. Преобразование выполняется согласно опциям, описанным ниже.

Под параметром format понимается файл, размещенный в каталоге /usr/lib/mapchan/translate, если не задано полное имя пути.

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

ОПЦИИ

-ea из формата EBCDIC в формат ASCII. -ae из формата ASCII в формат EBCDIC. -fe format из формата, определенного пользователем, в формат EBCDIC. -fa format из формата, определенного пользователем, в формат ASCII. -ef format из формата EBCDIC в формат, определенный пользовалем. -af format из формата ASCII в формат, определенный пользователем. -bm из двоичного/объектного кода в доступный для передачи формат ASCII uuencode. -mb из формата ASCII uuencode в первоначальный двоичный формат.

ФАЙЛЫ

/usr/lib/map/translate/*

СМ. ТАКЖЕ

, , , .

ЗАМЕЧАНИЯ

Опции -bm и -mb, например, используются для преобразования объектного выполняемого кода в код ASCII для передачи через сети связи.

Синтаксис для файла, имеющего формат, определенный пользователем, совпадает с синтаксисом для отображения файлов, применяемого командами mapchar(5) и trchan.

Используйте опцию 'dd' для преобразования форматов файлов и символов (особенно для ленты) в указанный формат. Пример:

dd if=/dev/rmt0 of=outfile ibs=800 cbs=80 conv=ascii, lcase.

Эта команда читает ленту в формате EBCDIC, содержащую десять 80-байтовых карточных образов в коде EBCDIC на одну запись, и переписывает ее в файл outfile в формате ASCII. Для более детального описания опций преобразования посмотрите команду в Руководстве по системе XENIX (XENIX Reference).

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TRAP(1)


ИМЯ

trap - реакция на сигналы

СИНТАКСИС

trap [[command] [condition]]...

ОПИСАНИЕ

Команда trap используется, когда надо выполнить заданную команду command по получении определенного сигнала или события в системе. Аргумент condition задает различные условия.

Могут быть следующие ситуации:

command отсутсвует или равен "-"

восстанавливается стандартная реакция на сигналы;

command - пустая строка

сигналы игнорируются;

condition = 0 или exit

команда command выполняется при завершении интерпретатора;

condition = err

команда command выполняется при обнаружении ошибки;

condition - символическое или числовое обозначение сигнала

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

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TRCHAN(7)


НАЗВАНИЕ

trchan - Переводит наборы символов

СИНТАКСИС

trchan [-ciko] mapfile

ОПИСАНИЕ

trchan представляет отображение как фильтр, использующий такой же формат mapfile, как и (описанный в mapchan (3)). Это позволяет файлу, содержащему один набор внутренних символов для "передачи" в другой набор внутренних символов.

trchan считывает стандартный ввод, отображает его и записывает в стандартный символ. Файл mapfile должен задаваться командной строкой.Ошибки вызывают trchan для того, чтобы остановить обработку, иначе определяется -с.

Следующие параметры могут использоваться с trchan:

-cвызывает ошибки для отражения на stderr, и обработка продолжается. -iопределяет, что область "ввода" mapfile используется при передаче данных. -kопределяет, что "мертвые" и "составные" области mapfile используются при передаче данных. -oопределяет, что область "вывода" mapfile используется при передаче данных.

Параметры -i, -k и -o могут определяться в любой комбинации; если ни один не определяется, trchan использует ввод mapfile, как если бы все три были определены вместе.

ФАЙЛЫ

/usr/lib/mapchan/*

СМ. ТАКЖЕ

, mapchan(3),

ПРИМЕЧАНИЯ

trchan в настоящий момент игнорирует области control в mapfile.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TRIG(3M)


НАЗВАНИЕ

trig: sin, cos, tan, asin, acos, atan, atan2 - тригонометрические функции

СИНТАКСИС

#include <math.h>

double sin (x) double x;

double cos (x) double x;

double tan (x) double x;

double asin (x) double x;

double acos (x) double x;

double atan (x) double x;

double atan2 (y, x) double x, y;

ОПИСАНИЕ

Функции sin, cos и tan возвращают, соответственно, синус, косинус и тангенс своего аргумента, заданного в радианах.

Функция asin возвращает значение arcsin (x) в диапазоне от - П/2 до П/2.

Функция acos возвращает значение arccos (x) в диапазоне от 0 до П.

Функция atan возвращает значение arctg (x) в диапазоне от - П/2 до П/2.

Функция atan2 возвращает значение arctg (y/x) в диапазоне от - П до П, используя знаки обоих аргументов для определения квадранта, которому должно принадлежать возвращаемое значение.

СМ. ТАКЖЕ

.

ДИАГНОСТИКА

При вычислении значений функций sin, cos и tan для значений аргумента, далеких от нуля, происходит потеря точности. При достаточно больших значениях аргумента, когда происходит полная потеря значимости, эти функции возвращают нулевое значение; при этом в стандартный протокол будет выдано соответствующее сообщение. В не столь крайнем случае, когда происходит лишь частичная потеря значимости, сообщение об ошибке не выдается. В обоих случаях переменной errno присваивается значение ERANGE.

Если абсолютная величина аргумента функций asin или acos превышает 1, либо оба аргумента функции atan2 равны нулю, то будет возвращено нулевое значение, а переменной errno присвоено значение EDOM. Кроме того, в стандартный протокол будет выдано сообщение о выходе за границы области определения.

Изложенная процедура обработки ошибок может быть изменена посредством функции .

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TRUE(1)


НАЗВАНИЕ

true - выдает логическое значение "истина"

СИНТАКСИС

true

ОПИСАНИЕ

Команда true ничего не делает и успешно завершается. Как правило, используется в процедурах на языке shell. Пример.

while true do команда done

СМ. ТАКЖЕ

, .

КОД ЗАВЕРШЕНИЯ

Команда выдает нулевой код завершения.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TSEARCH(3C)


НАЗВАНИЕ

tsearch, tfind, tdelete, twalk - управление бинарными деревьями поиска

СИНТАКСИС

#include <search.h>

char *tsearch ((char *) key, (char **) rootp, compar) int (*compar) ( );

char *tfind ((char *) key, (char **) rootp, compar) int (*compar) ( );

char *tdelete ((char *) key, (char **) rootp, compar) int (*compar) ( );

char *twalk ((char *) root, action) void (*action) ( );

ОПИСАНИЕ

Функции tsearch, tfind, tdelete и twalk предназначены для выполнения операций над бинарными деревьями поиска. Функции реализованы на основе алгоритмов, описанных в книге Д. Кнута: Искусство программирования для ЭВМ. Т. 3. Сортировка, поиск. - М.: Мир, 1978. Раздел 6.2.2, алгоритмы T и D. Операции сравнения выполняются с помощью функции, предоставляемой пользователем. Функция сравнения вызывается с двумя аргументами - указателями на сравниваемые элементы. В соответствии с тем, какое целое число она возвращает: меньшее нуля, равное нулю или большее нуля, первый аргумент считается меньшим, равным или большим по отношению ко второму. В сравнении не обязательно должен участвовать каждый байт, поэтому элементы, в дополнение к сравниваемым величинам, могут содержать произвольные данные.

Функция tsearch используется для построения дерева и доступа к нему. Аргумент key является указателем на искомые данные (ключ). Если в дереве есть узел с данными, равными искомым, то результатом функции служит указатель на этот узел, первым полем которого является указатель на данные. В противном случае в дерево вставляется узел со ссылкой на искомые данные и возвращается указатель на него. Отметим, что копируются только указатели, поэтому вызываемая программа сама должна хранить данные. Аргумент rootp указывает на переменную, которая является указателем на корень дерева. Значение NULL переменной, на которую указывает rootp, означает пустое дерево; в этом случае переменная устанавливается равной указателю на данные, которые окажутся в корне нового дерева.

Подобно функции tsearch, функция tfind осуществляет поиск данных в дереве, возвращая в случае успеха указатель на узел. Однако в случае неудачного поиска функция tfind возвращает пустой указатель NULL. Аргументы для функции tfind такие же, как и для функции tsearch.

Функция tdelete удаляет узел из бинарного дерева поиска. Аргументы такие же, как и для функции tsearch. Переменная, на которую указывает rootp, изменяется, если удаляемый узел является корнем дерева. Функция tdelete возвращает указатель на предка удаляемого узла или пустой указатель NULL, если узел не найден.

Функция twalk осуществляет обход бинарного дерева поиска. Аргумент root указывает на корень обрабатываемого дерева. Любой узел может быть использован в качестве корня для обхода соответствующего поддерева. Аргумент action - это функция, которая вызывается для каждого узла. Она в свою очередь имеет три аргумента. Первым аргументом служит адрес текущего узла. Второй аргумент - это значение перечисляемого типа данных, определенного во включаемом файле <search.h> как



TSET(1)


ИМЯ

tset - устанавливает режимы терминала.

СИНТАКСИС

tset [-] [-h rsuIQS] [-e[c]] [-E[c]] [-k[c]] [-m[ident] [test baudrate]:type] [type]

ОПИСАНИЕ

Команда tset обеспечивает зависимые от типа терминала установки, такие как установку символов erase и kill, установки или сброс задержек и т.д. Они задаются файлами /etc/ttytype и /etc/termcap.

Тип терминала определяется аргументом type. Он может быть любым типом, имеющимся в файле /etc/termcap. Если аргумент type не определен, то типу терминала присваивается значение переменной среды TERM, если не установлен флаг -h или не задан аргумент -m. В этом случае значение типа читается из файла /etc/ttytype (это имя порта в базе данных, описывающую тип терминала). Имя порта определяется вызовом ttyname(2) в диагностическом выводе. Если в файле /etc/ttytype порт не найден, то типу терминала присваивается значение unknown (неизвестный).

Порты, для которых тип терминала не определен, обозначаются в файле /etc/ttytype как dialup, plugboard и т.д. Пользователь может определить, как эти идентификаторы будут отображаться на действительный тип терминала. За флагом отображения -m следует соответствующий идентификатор (подстрока из четырех или более символов), необязательная тестовая последовательность для проверки скорости передачи и тип терминала, которые будут использованы, если условия отображения удовлетворены. Если определено более одного отображения, то используется первое корректирующее отображение. Пропущенный идентификатор выравнивает все идентификаторы. Скорости передачи (в бодах) определяются как в команде и сравниваются со скоростью диагностического вывода. Тестовая последовательность может быть любой комбинацией из знаков >, =, <, @ , ! (Замечание: знак @ является синонимом '=', а '!' инвертирует последовательность теста. Обратите внимание, что исключающие символы имеют важное значение в интерпретаторе shell).

Если аргумент type, определенный как описано выше, начинается со знак вопроса, пользователю выдается запрос, действительно ли он хочет работать с терминалом данного типа. Пустой ответ означает использование этого типа; иначе, может быть введен другой тип, который будет использован вместо предложенного. (Знак вопроса должен быть исключен для предохранения расширения имени файла интерпретатором shell).

Команда tset наиболее удобна, когда включается в файлы .login (для команды ) или .profile (для команды ), автоматически выполняемые при регистрации, с флагом отображения -m, используемым для определения типа терминала, который вы считаете наиболее удобным для подключения.

ОПЦИИ


-e эта опция устанавливает соответствие между символом erase и указанным символом 'c', который по умолчанию равен Ctrl-H. -E этот флаг идеинтичен флагу -e, кроме того, что он используется на терминалах, которые допускают забой. -k эта опция устанавливает соответствие между символом kill и указанным символом 'c', который по умолчанию равен Ctrl-U. Во всех этих флагах '^X' (X - любой символ) эквивалентно Ctrl-X. - эта опция печатает тип терминала на стандартном устройстве вывода; это может быть использовано с целью получения информации о типе терминала; для этого наберите: set termtypy = 'test-'

Если другие опции не заданы, команда test выполняется в быстром режиме ("fast mode") и выводит только тип терминала, пропуская все остальные данные. -h вынуждает команду test осуществлять поиск информации в файле /etc/ttytype и пересмотр переменной среды TERM. -s эта опция выводит команды setenv (если ваш интерпретатор shell по умолчанию - ) или команды назначения и команды export (если ваш стандартный shell - ).
Для опции -s с интерпретатором Bourne shell наберите: tset -s .>/tmp/tset$$ /tmp/tset$$ rm /tmp/tset$$

-S эта опция только печатает строки, размещенные в переменной среды. Если вы используйте csh, наберите: set noglob set term = ('tset -S .' setenv TERM $term[1] setenv TERMCAP "$term[2] unset term unset noglob

-r эта опция высвечивает тип терминала на диагностическом устройстве вывода. -Q эта опция подавляет высвечивание предложений "Erase set to" и "Kill set to". -I эта опция подавляет вывод строк, описывающих инициализацию терминала. -m эта опция является флагом отображения. Она используется для определения типа терминала, который вы наиболее часто используйте. За ним следует соответствующий идентификатор вашего терминала, находящийся в файле /etc/ttytype. Когда вы подключаетесь к системе, этот флаг присваивает типу терминала значение ident, если вы не определили иначе.

ПРИМЕРЫ

tset gt42

Присваивает типу терминала значение gt42.



tset -m dialup\>300:adm3a -m dialup:dw2 -Qr -e#

Если элемент в файле /etc/ttytype, соответствующий порту регистрации, имеет имя dialup, а скорость передачи порта больше 300 бод, тип терминала будет иметь значение adm3a. Если тот-же элемент в том же файле имеет имя dialup, но скорость передачи меньше или равна 300 бод, то тип терминала будет иметь значение dw2. Символу erase присвоено значение символа #, а тип терминала (но не символ erase) высвечивается на стандартном устройстве вывода.

tset -m dial:ti733 -m plug:\?hp2621 -m unknown:\? -e -k ^U

Если элемент файла /etc/ttytype начинается с dial, тип терминала имеет значение ti733. Если элемент начинается с plug, то команда test выдает подсказку:

TERM = (hp2621)

Если он отличается от желаемого, то наберите новый тип терминала. Если элемент - unknown, то будет выдано сообщение:

TERM = (unknown)

В любом случае символу "пробел" присвоено значение символа erase, тип терминала будет высвечен на стандартном устройстве вывода ошибок, а комбинации Ctrl-U присвоено значение символа kill.

ФАЙЛЫ

/etc/ttytype Имя порта в базе данных, содержащей типы терминалов /etc/termcap База данных, описывающая возможности те- рминала

СМ. ТАКЖЕ

, termcap(5), .

РАЗРЕШЕНИЕ

Эта утилита была разработана в Калифорнийском Университете, г.Беркли, и разрешена к использованию.








Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT


TSORT(1)


НАЗВАНИЕ

tsort - топологическая сортировка

СИНТАКСИС

tsort [файл]

ОПИСАНИЕ

Команда tsort выдает на стандартный вывод полностью упорядоченный список элементов в соответствии с частичным порядком, заданным во входном файле. Если файл не указан, то данные берутся со стандартного ввода.

Исходными данными служат пары элементов (непустых цепочек символов), разделенных пробелами. Упорядоченность задается парами различных элементов. Пара одинаковых элементов означает лишь наличие элемента и никакой упорядоченности не задает.

СМ. ТАКЖЕ

.

ДИАГНОСТИКА

Odd data:

В исходном файле нечетное число элементов.

Cycle in data:

Заданная упорядоченность содержит циклы.

СЮРПРИЗЫ

Если программа tsort встречает цикл более чем из двух элементов, она зацикливается без выдачи диагностики.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TSTMODE(1M)


НАЗВАНИЕ

tstmode - установка драйвера устройства в тестовый режим

СИНТАКСИС

/etc/tstmode режим_тестирования бесструктурное_устройство

ОПИСАНИЕ

Команда tstmode передает командный запрос драйверу устройства и устанавливает заданный шестнадцатеричный режим_тестирования. Работает ли режим тестирования и как именно это происходит, целиком зависит от драйвера устройства. Во включаемом файле перечислены известные биты режимов тестирования. Драйверы дисков способны работать в тестовом режиме.

ФАЙЛЫ

/usr/include/sys/tstmode.h

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TTY(1)


НАЗВАНИЕ

tty - получение имени терминала

СИНТАКСИС

tty [-l] [-s]

ОПИСАНИЕ

Команда tty выдает полное имя терминала пользователя.

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

КОДЫ ЗАВЕРШЕНИЯ

0 Стандартный ввод осуществляется с терминала. 1 Во всех остальных корректных случаях. 2 Указаны недопустимые опции.

ДИАГНОСТИКА

not on an active synchronous line

Возникает при задании опции -l, если стандартный ввод осуществляется не с синхронного терминала.

not a tty

Возникает в отсутствие опции -s, когда стандартный ввод осуществляется не с терминала.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TTY(5)XENIX System V (1 янвapя 1989)


НАЗВАНИЕ

tty - cпeциaльный тepминaльный интepфeйc

ОПИСАНИЕ

Фaйл /dev/tty - cинoним yпpaвляющeгo тepминaлa, cвязaнный c гpyппoй пpoцecca, иcпoльзyeмый пpoгpaммaми и кoмaндaми shell, кoтopым тpeбyeтcя ocyщecтвить вывoд имeннo нa тepминaл внe зaвиcимocти oт тoгo, кaк мoжeт быть пepeнaпpaвлeн вывoд. Фaйл тaкжe пoлeзeн для пpoгpaммaм, зaпpaшивaющиx имя фaйлa вывoдa, в cлyчae, кoгдa пoиcк иcпoльзyeмoгo в дaнный мoмeнт тepминaлa влeчeт бoльшиe нaклaдныe pacxoды.

Ocнoвнoй тepминaльный интepфeйc oпиcaн в .

ФАЙЛЫ

/dev/tty /dev/tty*

СМ. ТАКЖЕ

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TTY(7)


НАЗВАНИЕ

tty - интерфейс с управляющим терминалом

ОПИСАНИЕ

В каждом процессе специальный файл /dev/tty является синонимом управляющего терминала для данной группы процессов (если, конечно, управляющий терминал существует). Полезно обращаться к этому файлу для выдачи сообщений на терминал, когда стандартный вывод может быть переназначен, или когда трудно определить, какой именно терминал используется.

ФАЙЛЫ

/dev/tty /dev/tty*

СМ. ТАКЖЕ

.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TTYCP(1)


НАЗВАНИЕ

ttycp - копирование между последовательными портами

СИНТАКСИС

ttycp [источник [приемник]]

ОПИСАНИЕ

Команда ttycp копирует информацию из указанного файла-источника (по умолчанию - со стандартного ввода) в файл-приемник (по умолчанию на стандартный вывод). И источник, и приемник могут быть как последовательным интерфейсом, так и обычным файлом. В противоположность команда ttycp позволяет организовать "наглядное" копирование данных между последовательными портами.

ПРИМЕРЫ

Копировать ввод из /dev/tty1 в файл test.out:

ttycp /dev/tty1 test.out

Передать данные из файла test.out в /dev/tty2:

ttycp test.out /dev/tty2

Передать данные из /dev/tty1 в /dev/tty2:

ttycp < /dev/tty1 > /dev/tty5

ФАЙЛЫ

/dev/tty* Последовательные порты.

СМ. ТАКЖЕ

.

СЮРПРИЗЫ

Необходимо обладать правами, достаточными для открытия файла /dev/ttyномер_порта.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TTYNAME(3C)


НАЗВАНИЕ

ttyname, isatty - опрос имени терминала

СИНТАКСИС

char *ttyname (fildes) int fildes;

int isatty (fildes) int fildes;

ОПИСАНИЕ

Функция ttyname возвращает указатель на цепочку символов, оканчивающуюся нулем и содержащую маршрутное имя терминального устройства, ассоциированного с дескриптором файла fildes.

Функция isatty возвращает 1, если fildes ассоциирован с терминалом, и 0 в противном случае.

ФАЙЛЫ

/dev/*

ДИАГНОСТИКА

Функция ttyname возвращает пустой указатель NULL, если fildes не описывает терминальное устройство в каталоге /dev.

ОГРАНИЧЕНИЯ

Значение, возвращаемое функцией ttyname, указывает на один и тот же статический массив, содержимое которого полностью изменяется после каждого вызова.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TTYS(5)XENIX System V (1 янвapя 1989)


НАЗВАНИЕ

ttys - фaйл peгиcтpaции тepминaлoв

ОПИСАНИЕ

B фaйлe /etc/ttys coдepжитcя cпиcoк cпeциaльныx фaйлoв, cвязaнныx c тepминaлaми, дocтyпными для peгиcтpaции, и oпpeдeляeтcя кaкиe из фaйлoв oткpывaютcя пpoгpaммoй вo вpeмя зaгpyзки.

Фaйл coдepжит oднy или нecкoлькo cтpoк в фopмaтe:

state mode name

Name - имя cпeциaльнoгo фaйлa ycтpoйcтвa (тpeбyeтcя тoлькo имя, пoдpaзyмeвaeтcя кaтaлoг /dev). Peгиcтpaция paзpeшeнa, ecли state paвнo "1", и зaпpeщeнa, ecли state paвнo "0". Mode иcпoльзyeтcя кaк apгyмeнт пpoгpaммы .

Haпpимep, cтpoкa "1mtty02" oзнaчaeт, чтo пocлeдoвaтeльнaя линия tty02 дocтyпнa, cкopocть пepeдaчи 9600 бoд.

ФАЙЛЫ

/etc/ttys

СМ. ТАКЖЕ

, , , , terminal(HW), ,

ЗАМЕЧАНИЯ

Фaйл /etc/ttys мoжeт быть oтpeдaктиpoвaн тoлькo в oднoпoльзoвaтeльcкoм peжимe. Ecли тaкaя peдaкция выпoлнeнa, нa paбoтy cиcтeмы этo нe пoвлияeт дo тex пop, пoкa нe бyдyт дaны кoмaнды enable или disable, или нe бyдeт выпoлнeнa пepeзaгpyзкa

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TTYSLOT(3C)


НАЗВАНИЕ

ttyslot - поиск элемента, соответствующего текущему пользователю, в файле utmp

СИНТАКСИС

int ttyslot ( )

ОПИСАНИЕ

Результатом функции ttyslot является номер элемента, соответствующего текущему пользователю, в файле /etc/utmp. Для этого просматривается файл /etc/inittab в поисках имени терминала, ассоциированного со стандартными вводом, выводом или протоколом (дескрипторы файлов 0, 1 или 2).

ФАЙЛЫ

/etc/inittab /etc/utmp

СМ. ТАКЖЕ

, .

ДИАГНОСТИКА

Если в процессе поиска имени терминала происходит ошибка, или ни один из указанных выше дескрипторов файлов не связан с терминалом, возвращается значение 0.

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TTYTYPE(4)


НАЗВАНИЕ

ttytype - информация о типах терминалов

ОПИСАНИЕ

В файле /etc/ttytype содержатся определения типов терминалов для специальных файлов из каталога /dev. При входе в систему выполняется файл /etc/profile. Этот файл содержит последовательность команд:

ta=`tty` ta=`grep "$ta " /etc/ttytype` TERM=`expr "$ta" : '.* \(.*\)' \| "$ta"`

в результате выполнения которой устанавливается переменная окружения TERM. Программы, использующие специальные возможности терминала [например, ], читают значение переменной TERM и используют его в качестве ключа для базы данных termcap или .

ПРИМЕР

Строка в файле /etc/ttytype:

/dev/console vt100

определяет консоль как терминал типа vt100.

СМ. ТАКЖЕ

, , .

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TYPES(5)


НАЗВАНИЕ

types - базовые системные типы данных

СИНТАКСИС

#include <sys/types.h>

ОПИСАНИЕ

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

typedef struct { int r[1]; } * physadr; typedef long daddr_t; typedef char * caddr_t; typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; typedef ushort ino_t; typedef short cnt_t; typedef long time_t; typedef int label_t[10]; typedef short dev_t; typedef long off_t; typedef long paddr_t; typedef long key_t; typedef unsigned char use_t; typedef short sysid_t; typedef short index_t; typedef short lock_t; typedef unsigned int size_t;

Тип daddr_t используется для адресации диска, кроме адресов в описателях файлов; см. . Время измеряется в секундах, начиная с 00:00:00 1 января 1970 года (по Гринвичу). Старшие и младшие номера устройств определяют вид и номер устройства и зависят от конкретной конфигурации. Смещение измеряется в байтах от начала файла. Переменные типа label_t используются для сохранения состояния процессора на время выполнения другого процесса.

СМ. ТАКЖЕ

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



TZ(5)XENIX System V (1 янвapя 1989)


НАЗВАНИЕ

TZ - чacoвoй пoяc (пepeмeннaя кoмaнднoй cpeды)

СИНТАКСИС

TZ=sssn[ddd[m][;start[/time],end[/time]]]; export TZ setenv TZ sssn[ddd[m][;start[/time],end[/time]]] /etc/tz

ОПИСАНИЕ

Пepeмeннaя кoмaнднoй cpeды TZ пpeднaзнaчeнa для зaдaния чacoвoгo пoяca, ee знaчeниe мoжeт быть ycтaнoвлeнo в фaйлax /etc/rc, /.profile, /etc/default/login.

Фaйл /etc/tz, выпoлняeмый, глaвным oбpaзoм, вo вpeмя нacтpoйки, зaпpaшивaeт чacoвo пoяc и выпoлняeт нeoбxoдимыe измeнeния в cooтвeтcтвyющиx фaйлax.

Зaпpaшивaютcя тaкжe дaты пepexoдa нa лeтнee вpeмя и oбpaтнo, чacoвaя paзницa мeждy лeтним и cтaндapтным вpeмeнeм.

Пoльзoвaтeли, нaxoдящиecя в инoм чacoм пoяce, чeм гoлoвнaя мaшинa, мoгyт измeнить TZ cвoи фaйлы $HOME/.profile или $HOME/.login. TZ coдepжит cлeдyющyю инфopмaцию:

(sss)Oт oднoй дo дeвяти бyкв, oпpeдeляющиx cтaндapтный чacoвoй пoяc. (n)Чacoвaя paзницa co вpeмeнeм пo Гpинвичy. (Пoлoжитeльнoe чиcлo - для пoяcoв, зaпaднee Гpинвичa, oтpицaтeльнoй - для пoяcoв, вocтoчнee). (ddd)Oт oднoй дo дeвяти бyкв, oпpeдeляющиx мecтнoe лeтнee вpeмя. Ecли нe yкaзaнo, лeтнeгo вpeмeни нe cyщecтвyeт. (m)Чacoвaя paзницa c лeтним вpeмeнeм пo Гpинвичy. Ecли oпyщeнo, пoдpaзyмeвaeтcя oднoчacoвaя paзницa c мecтным вpeмeнeм. (start)Пpaвилo, oпpeдeляющee дeнь нaчaлa лeтнeгo вpeмeни. B южнoм пoлyшapии дeнь oкoнчaния лeтнeгo вpeмeни дoлжeн быть paньшe, чeм дeнь нaчaлa. (end)Пpaвилo, oпpeдeляющee дeнь oкoнчaния лeтнeгo вpeмeни. (time)Bpeмя дня, в кoтopoe ocyщecтвляeтcя пepexoд нa лeтнee вpeмя. пo yмoлчaнию, 02:00:00 мecтнoгo вpeмeни.

Пpaвилa, oпpeдeляющиe start и end лeтнeгo вpeмeни cлeдyющиe:

Jn1 бaзoвый июльcкий дeнь n(1<=n<=365) n0 бaзoвый июльcкий дeнь n(1<=n<=364) Wn.dn-ый(1<=n<=53) дeнь нeдeли d(0<=d<=6) Mm.n.dn-ый(1<=n<=5) дeнь нeдeли d в мecяцe m(1<=m<=12)

Лишний дeнь в виcoкocнoм гoдy нe yчитывaeтcя (в пepвыx двyx пpaвилax), зa 28-м фeвpaля(J59) cлeдyeт 1 мapтa(J60).

Bocкpeceньe являeтcя пepвым днeм нeдeли (0). Ecли d oпyщeнo, пoдpaзyмeвaeтcя вocкpeceньe.

Для тoгo, чтoбы измeнить чacoвoй пoяc, тpeбyeтcя зaпycтить etc/tz или oтpeдaктиpoвaть фaйлы /etc/rc, /.profile,

ФАЙЛЫ

/etc/rc /etc/default/login $HOME/.profile $HOME/.login

СМ. ТАКЖЕ

, , ctime(1)

ЗАМЕЧАНИЯ

Date(1) aвтoмaтичecки вocпpинимaeт пepexoд нa лeтнee вpeмя.

Измeнeниe TZ нeмeдлeннo cкaзывaeтcя нa paбoтe cиcтeмы, cлeдyющий вызoв пpoцeдypы ctime(2) вoзвpaщaeт знaчeниe, бaзиpyющeecя нa нoвoм знaчeнии

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT



UNIX2DOS(1)


ИМЯ

unix2dos - преобразование форматов файлов

СИНТАКСИС

unix2dos [-?hz] [infile [outfile ]]

ОПИСАНИЕ

Команда unix2dos служит для преобразования форматов текстовых файлов UNIX к MSDOS формату. Известно, что форматы текстовых файлов в DOS и в UNIX немного отличаются: в DOS все строки заканчиваются парой символов CR и LF (возврат каретки и перевод строки), а UNIX использует только символ LF (перевод строки), справедливо полагая, что второй символ совершенно излишен. В командной строке аргумент infile служит для определения UNIX - файла, а аргумент outfile используется для задания имени ничем не отличающегося по содержанию текстового файла, но уже в DOS формате.

-z служит для записи символа конца файла EOF. -?, -h используются для выдачи на печать списка доступных опций.

СМ. ТАКЖЕ

dos2unix

Comments: info@citmgu.ru

Designed by Andrey Novikov

Copyright © CIT