Я пишу программу, которая использует termcaps, и мне нужно знать, какой терминал я использую.
Я знаю, что могу получить TERM
переменную через getenv("TERM")
, но я могу запустить свою программу с помощью «$ env -i ./myprog
», и TERM не будет установлен.Могу ли я безопасно установить переменную среды TERM?
Итак, как я могу определить, какой тип терминала использовать?
Могу ли я безопасно установить TERM
переменной в xterm/xterm-256color
в моей заявке?
Может ли это вызвать проблемы с переносимостью?
Есть ли способ сделать это (получить термин типа) безопасно?
У меня есть много руководств (getty - getttab - tty - ttys) и сообщений, но я не могу найти решения.
Я также беспокоюсь, потому что, если я запускаю оболочку (например, zsh
или tcsh
) У меня есть проблемы с некоторыми ключами.
Например запускающее zsh
следующим образом:
$env -i zsh
будет вызывать проблемы со стрелками и любые клавиши, подразумевающих termcaps (даже Ctr-d).
Вместо этого bash
и tcsh
будут вести себя обычно на многих клавишах, но не на всех.
Конструкция TERM-переменная существует точно определить тип терминала, которые будут использоваться , существует лишь один общий способ угадать тип терминала и установить TERM. Вы можете позволить пользователю выбрать терминал, если он отключен, или попытаться по умолчанию использовать 'vt100', поскольку это часто используется. – Ctx
Я пытаюсь получить более переносимое, чем возможное приложение, поэтому я полагаю, что если я выберу установку по умолчанию vt100, у меня может возникнуть проблема портативности? – LotoLo
Нет, это просто не будет работать, как ожидалось, если используемая эмуляция терминала несовместима с vt100. Портативный способ: Опираясь на настройку переменной среды TERM; если он не установлен, пользователь должен исправить свою среду. – Ctx