Termcap

termcap (англ. terminal capability, свойства терминала) — это библиотека и база данных, используемые в Unix-подобных операционных системах. Она позволяет программам независимо использовать аппаратное обеспечение компьютерного терминала, что значительно упрощает процесс написания портативных консольных приложений. Билл Джой создал первую версию библиотеки termcap в 1978 году[1][2] для операционной системы BSD; позже она была портирована на большинство Unix и Unix-подобных сред. Известно, что на дизайн библиотеки termcap повлиял дизайн окончательной базы данных в более ранней несовместимой системе разделения времени[3]. База данных termcap описывает возможности сотен различных терминалов, она позволяет программам использовать текстовый вывод независимо от конечного типа, а текстовые редакторы vi и emacs используют termcap.

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

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

Модель данных

Базы данных termcap состоят из одного или нескольких описаний терминалов.

Индексы

Каждое описание должно содержать каноническое имя терминала. Оно может также содержать несколько псевдонимов. Эти названия используются как ключи для поиска в базе termcap.

Значения

Описание содержит одно или несколько свойств, которые имеют стандартные имена. Свойства могут иметь следующие типы: логический, числовой и строковый. Библиотека termcap не имеет предопределенного типа для каждого из свойств, поэтому тип определяется исходя из синтаксиса:

  • строковые свойства имеют знак "=" между именем свойства и его значением;
  • числовые свойства имеют знак "#" между свойством и значением;
  • логические свойства не имеют значения (всегда считаются истинными, если они указаны).

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

Иерархия

Описания могут возвращаться из базы данных с изменениями: добавлением, удалением и переопределением свойств (например, при изменении размера экрана в эмуляторе терминала). Библиотека termcap создает описание терминала из запрошенного описания, включая, удаляя или переопределяя свойства, полученные на момент запроса.

Модель хранения данных

Данные termcap хранятся в текстовом виде, удобном для изменения человеком. Библиотека termcap может запрашивать текст из файлов или переменных окружения.

Переменные окружения

Переменная окружения TERM содержит имя типа терминала.

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

Переменная окружения TERMPATH поддерживается более поздними реализациями termcap и содержит путь к файлам termcap.

Плоский файл

Оригинальная (и наиболее распространенная) реализация библиотеки termcap получает данные из плоского текстового файла. Поиск по большому файлу termcap, например больше 500 Кб, может быть медленным. Для ускорения поиска может использоваться специальная утилита, например reorder, которая помещает наиболее часто используемые пользователем записи в начало файла.

Хешированная база данных

Реализации библиотеки termcap для BSD-4.4 хранят описания терминалов в хешированной базе данных (например, Berkeley DB версии 1.85). Хранятся два типа записей: псевдонимы, указывающие на канонические записи, и сами канонические записи. Содержимое записи termcap хранится в виде обычного текста.

Ограничения и расширения

Оригинальная реализация termcap создавалась для работы с использованием малого количества памяти:

  • первое имя должно состоять из 2 символов (16 бит);
  • имя свойств должны состоять из 2 букв;
  • описания должны быть ограничены 1023 символами;
  • только одна запись termcap может иметь собственные определения, и она должна быть размещена последней.

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

Функция tgetent, используемая для чтения описания терминала, принимает на вход адрес буфера, чей размер должен быть достаточно большим для считывания данных (1024 байта). Более поздние реализации termcap могут ослаблять это ограничение путём разрешения нулевого указателя в качестве параметра[4] либо скрывая часть, которая не помещается в буфер, например, через свойство ZZ в реализации NetBSD termcap[5]. Библиотека terminfo также эмулирует интерфейс termcap, хотя и не использует буфер фиксированного размера на самом деле.

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

Устаревшие свойства

Специальное свойство "hz" было добавлено для поддержки терминала Hazeltine 1500, в котором неудачно был выбран символ тильды ('~') в качестве начала управляющей последовательности[7]. Для поддержки данного терминала пришлось написать специальный код, который при выводе текста с тильдами делал специальную подстановку во избежание исполнения неожиданных управляющих команд[8]. Кроме того, маркеры атрибутов (например, начало и конец подчеркивания) занимали место на экране[источник не указан 3896 дней]. Комментарии в исходном коде описывают эту особенность фразой "Hazeltine braindamage" ("повреждением мозга Hazeltine")[9]. Поскольку Hazeltine 1500 был популярным терминалом в 1970-х[источник не указан 3896 дней], было важно реализовать его поддержку в termcap.

См. также

Ссылки

  1. Peter H. Salus, "The history of Unix is as much about collaboration as it is about technology", Byte, October 1994. Дата обращения: 27 февраля 2015. Архивировано 25 февраля 2015 года.
  2. Kenneth C. R. C. Arnold and Elan Amir, "Screen Updating and Cursor Movement Optimization: A Library Package". Дата обращения: 27 февраля 2015. Архивировано 28 сентября 2007 года.
  3. alt.sys.pdp10 posting. Дата обращения: 27 февраля 2015. Архивировано 27 февраля 2015 года.
  4. The GNU Termcap Library. Дата обращения: 1 марта 2015. Архивировано 5 сентября 2015 года.
  5. NetBSD termcap file format. Дата обращения: 1 марта 2015. Архивировано 2 апреля 2015 года.
  6. Discussion of termcap in vi. Дата обращения: 1 марта 2015. Архивировано 7 августа 2011 года.
  7. termcap(5) — страница справки man по форматам файлов FreeBSD  (англ.)
  8. Stallman, Richard M. The Termcap Library and Database, Second Edition. Gnu.org (1992). Дата обращения: 17 мая 2014. Архивировано 14 марта 2015 года.
  9. termcap.src. Apple Computer. Дата обращения: 17 мая 2014. Архивировано 18 сентября 2016 года.

Внешние ссылки

Read other articles:

Tylenol PM (kiri) dan Tylenol (kanan) Tylenol /ˈtaɪlənɒl/ adalah merk obat yang digunakan untuk mengurangi rasa sakit dan demam serta meringankan gejala alergi, selesma, sakit kepala dan influenza. Bahan aktifnya adalah parasetamol (dikenal di Amerika Serikat dengan nama acetaminophen), sebuah bahan analgesik dan antipiretik. Seperti kata acetaminophen dan parasetamol, nama merk Tylenol berasal dari nama kimia senyawanya, N-aceTYL-para-aminophENOL (APAP).[1] Merk ini dimiliki oleh...

 

Bandar Udara TambolakaTambolaka AirportIATA: TMCICAO: WATKInformasiJenisPublikPemilikPemerintah IndonesiaPengelolaKementerian PerhubunganMelayaniTambolakaLokasiKabupaten Sumba Barat Daya, Nusa Tenggara Timur, IndonesiaKetinggian dpl47,85 mdplKoordinat09°24′34.98″S 119°14′40.18″E / 9.4097167°S 119.2444944°E / -9.4097167; 119.2444944Situs webhttp://IndonesiaAirport.com/PetaTMCLokasi bandara di Pulau SumbaTampilkan peta SumbaTMCTMC (Nusa Tenggara Tim...

 

2016 film by Taika Waititi Hunt for the WilderpeopleNew Zealand theatrical release posterDirected byTaika WaititiScreenplay byTaika WaititiBased onWild Pork and Watercressby Barry CrumpProduced by Carthew Neal Matt Noonan Leanne Saunders Taika Waititi Starring Sam Neill Julian Dennison Rhys Darby Rima Te Wiata Rachel House CinematographyLachlan MilneEdited by Luke Haigh Tom Eagles Yana Gorskaya Music by Lukasz Buda Samuel Scott Conrad Wedde Productioncompanies Defender Films Piki Films Curiou...

Esta página cita fontes, mas que não cobrem todo o conteúdo. Ajude a inserir referências. Conteúdo não verificável pode ser removido.—Encontre fontes: ABW  • CAPES  • Google (N • L • A) (Janeiro de 2021) John Forsyth John Forsyth 13º Secretário de Estado dos Estados Unidos Período 1 de julho de 1834a 3 de março de 1841 Presidentes Andrew Jackson (1834–1837)Martin van Buren (1837–1841) Antecessor(a) Louis McLane Suc...

 

У Вікіпедії є статті про інших людей із прізвищем Франко. Іван Якович Франко Іван Франко, 1898 р.Псевдонім Джеджалик, Мирон, Мирон Сторож, Мирон Ковалишин, Руслан, Іван Живий, Невідомий, Не-Давид, Не-Теофраст, Nonseverus, Vivus, Марко В-а, Один з молодіжи, Один з русинів міста Львова, І. ...

 

Oerip SoebagyoInformasi pribadiLahir0 Desember 1960 (umur 63)IndonesiaKarier militerPihak IndonesiaDinas/cabang Kepolisian Negara Republik IndonesiaPangkat Inspektur Jenderal PolisiSatuanReserseSunting kotak info • L • B Irjen. Pol. (Purn.) Drs. Oerip Soebagyo, S.H. (lahir Desember 1960) adalah seorang Purnawirawan Polri yang terakhir menjabat sebagai Widyaiswara Utama Sespim Lemdiklat Polri. Oerip berpengalaman dalam bidang reserse. Jabatan terakhir jenderal bintang s...

TorghutLocation of Torghut in the Oirat ConfederationTotal population202,000Regions with significant populations Russia82,500 China106,000[1] Mongolia14,176[2]LanguagesTorgut dialect of OiratReligionTibetan Buddhism, Mongolian shamanismRelated ethnic groupsMongols, especially Oirats The Torghut (Mongolian: Торгууд, ᠲᠤᠷᠭᠣᠣᠠ, Torguud, Guardsman, simplified Chinese: 土尔扈特; traditional Chinese: 土爾扈特), are one of the four m...

 

1728–1967 sheikhdom in southwest Arabia Sultanate of Lahejسلطنة لحج (Arabic)1728–1967 Flag Emblem Map of the Sultanate of LahejMap of the Sultanate of Lahej in its regionStatusYemeni Zaidi State (1728–1740)Independent(1740–1872)Aden Protectorate (1872–1963)Federation of South Arabia (1963–1967)CapitalLahijReligion Sunni IslamGovernmentSultanateSultan History • Beginning of self-rule 1728• Independence from the Zaidi Imamate 1740• British inva...

 

Puerto Rican baseball player (born 1960) Baseball player Carmelo MartínezLeft fielder / First basemanBorn: (1960-07-28) July 28, 1960 (age 63)Dorado, Puerto RicoBatted: RightThrew: RightMLB debutAugust 22, 1983, for the Chicago CubsLast MLB appearanceOctober 2, 1991, for the Cincinnati RedsMLB statisticsBatting average.245Home runs108Runs batted in424 Teams Chicago Cubs (1983) San Diego Padres (1984–1989) Philadelphia Phillies (1990) Pittsburgh Pirates (1...

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (مايو 2022) هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إ...

 

Fakultas HukumUniversitas DiponegoroFaculty of Law Diponegoro UniversityJenisPerguruan Tinggi Negeri Badan HukumDidirikan1957 DekanProf. Dr. Retno Saraswati, S.H., M.HumLokasiSemarang, Jawa Tengah, IndonesiaKampusUrbanAlamatFakultas HukumJl. dr. Antonius Suroyo, Universitas Diponegoro, Tembalang, Semarang 50275WarnaMerah Situs webfh.undip.ac.id Fakultas Hukum Universitas Diponegoro disingkat FH Undip (Hanacaraka: ꦥ꦳ꦏꦸꦭ꧀ꦠꦱ꧀​ꦲꦸꦏꦸꦩ꧀​ꦈꦤꦶꦮ꦳ꦼꦂꦱ...

 

Governorate of Yemen Governorate in Aden Region, YemenAden محافظة عدنGovernorateCountry YemenRegionAden RegionSeatAdenControl Government of Yemen  Southern Movement (disputed)Government • GovernorAhmed LamlasArea • Total1,114 km2 (430 sq mi)Population (2011)[1] • Total1,917,000 • Density1,700/km2 (4,500/sq mi) Aden (Arabic: عَدَنْ ʻAdan) is a governorate of Yemen, including the city...

此條目需要补充更多来源。 (2023年1月12日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:蒙古國佛教 — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。 此條目翻譯品質稍有不足。請協助翻譯本條目或重新編寫,并注意避免翻译腔...

 

1998 single by Honeyz Finally FoundSingle by Honeyzfrom the album Wonder No. 8 B-side In the Street Summertime Released24 August 1998 (1998-08-24)[1]GenreNu-soulLength 4:47 (album version) 4:09 (Rude Boy Mix) Label Mercury 1st Avenue Songwriter(s) Yoyo Olugbo Henry Binns Honeyz Producer(s)Steve Levine[2]Honeyz singles chronology Finally Found (1998) End of the Line (1998) Music videoFinally Found on YouTube Finally Found is the debut single of British girl group...

 

This article uses bare URLs, which are uninformative and vulnerable to link rot. Please consider converting them to full citations to ensure the article remains verifiable and maintains a consistent citation style. Several templates and tools are available to assist in formatting, such as reFill (documentation) and Citation bot (documentation). (June 2022) (Learn how and when to remove this template message) Ministry of DefenseМинистерство обороны Таджикистан В...

Sporting event delegationMontenegro at theOlympicsIOC codeMNENOCMontenegrin Olympic CommitteeWebsitewww.cok.me(in Montenegrin)Medals Gold 0 Silver 1 Bronze 0 Total 1 Summer appearances20082012201620202024Winter appearances2010201420182022Other related appearances Yugoslavia (1920–1992W) Independent Olympic Participants (1992S) Serbia and Montenegro (1996–2006) This is a list of flag bearers who have represented Montenegro at the Olympics.[1] List of flag bearers Fla...

 

2012 single by Ke$ha C'MonSingle by Keshafrom the album Warrior ReleasedNovember 16, 2012 (2012-11-16)Recorded 2012 Studio Luke's in the Boo, Studio Malibu (Malibu, California) Record Plant (Hollywood, California) Westlake Studios (West Hollywood, California) GenreTechno-popdancepop-rapLength3:34 (main version)3:22 (radio edit)Label Kemosabe RCA Songwriter(s) Kesha Sebert Lukasz Gottwald Benjamin Levin Max Martin Bonnie McKee Henry Walter Producer(s) Dr. Luke Benny Blanco Cirku...

 

Metro station in Delhi, India East Vinod Nagar – Mayur Vihar-II Delhi Metro stationGeneral informationLocationBlock E, Vinod Nagar East, Delhi, 110091Coordinates28°37′12.1411″N 77°18′18.9565″E / 28.620039194°N 77.305265694°E / 28.620039194; 77.305265694Owned byDelhi MetroOperated byDelhi Metro Rail Corporation (DMRC)Line(s)Pink LinePlatformsSide platformPlatform-1 → Shiv ViharPlatform-2 → Majlis ParkTracks2ConstructionStructure typeElevated, Double-tr...

Artikel ini bukan mengenai Dia Anakku atau Anakku Bukan Anakku. Dia Bukan AnakkuGenre Drama Roman PembuatSinemArtSutradaraM. HaikalPemeran Arumi Bachsin Miller Glenn Alinskie Ariel Tatum Natasha Rizky Meriam Bellina Anwar Fuady Dina Lorenza Hanna Hasyim Penggubah lagu temaEndaLagu pembukaKu Ingin Selamanya — UnguLagu penutupKu Ingin Selamanya — UnguNegara asalIndonesiaBahasa asliBahasa IndonesiaJmlh. musim1Jmlh. episode27ProduksiProduser eksekutifElly Yanti NoorProduserLeo SutantoPengatur...

 

Airport in Broken Hill, New South WalesBroken Hill AirportIATA: BHQICAO: YBHISummaryAirport typePublicOperatorCouncil of the City of Broken HillLocationBroken Hill, New South WalesElevation AMSL959 ft / 292 mCoordinates32°00′06″S 141°28′18″E / 32.00167°S 141.47167°E / -32.00167; 141.47167Websitebrokenhill.nsw.gov.auMapYBHILocation in New South WalesRunways Direction Length Surface m ft 05/23 2,515 8,251 Asphalt 14/32 1,000 3,281 Grass Statist...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!