Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

TERM(4)

НАЗВАНИЕ
term - формат скомпилированного файла описаний терминалов

СИНТАКСИС


/usr/lib/terminfo/?/*

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

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

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

Скомпилированный файл создается из исходных файлов описаний терминалов [см опцию -I в infocmp(1M)] с помощью компилятора tic(1M). Чтение этого файла производится с помощью процедуры setupterm [см. curses(3X)].

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

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

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

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

В секции флагов под каждый флаг отводится один байт. Этот байт равен 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   Включаемый   файл   описаний  для terminfo(4).

СМ. ТАКЖЕ
curses(3X), terminfo(4), term(5).
infocmp(1M) в Справочнике администратора.

ОГРАНИЧЕНИЯ
Общий размер скомпилированного описания каждого терминала не должен превышать 4096 байт; размер секции имен терминалов не должен превышать 128 байт.

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...