저는 termcaps를 사용하는 프로그램을 작성하고 있으며 어떤 종류의 터미널을 사용하고 있는지 알고 싶습니다.
내가 getenv("TERM")
을 통해 TERM
변수를 가져올 수 있다는 것을 알고 있지만 "$ env -i ./myprog
"으로 프로그램을 시작할 수 있으며 TERM이 설정되지 않습니다.TERM 환경 변수를 안전하게 설정할 수 있습니까?
그래서 사용해야하는 터미널 유형을 어떻게 결정할 수 있습니까?
TERM
변수를 내 애플리케이션에서 xterm/xterm-256color
으로 안전하게 설정할 수 있습니까?
이식 할 수없는 문제가 발생합니까?
(termtype 가져 오기) 안전하게 할 수있는 방법이 있습니까?
많은 설명서 (getty-getttab-tty-ttys)와 게시물이 빨간색이지만 해결책을 찾지 못했습니다.
쉘 (예 : zsh
또는 tcsh
)을 실행하면 일부 키에 문제가 있기 때문에 걱정됩니다.
과 같이 zsh
발사 예 :
$env -i zsh
화살표와 termcaps (심지어 클릭률-d)를 의미하는 어떠한 키의 문제를 야기한다.
대신 bash
및 tcsh
은 모든 키가 아닌 많은 키에서 정상적으로 작동합니다.
용어 변수는 단말 종류의 결정을 정확하게 존재가 사용될 , 터미널 유형을 추측하고 TERM을 설정하는 또 다른 일반적인 방법이 있습니다. 사용자가 터미널을 선택하지 않았거나'vt100'을 기본값으로 사용하려고 시도 할 수 있습니다. 왜냐하면 종종 사용되기 때문입니다. – Ctx
가능한 응용 프로그램보다 더 많은 휴대용 응용 프로그램을 사용하려고합니다. 따라서 기본 vt100으로 설정하면 언젠가 이식성 문제가 발생할 수 있습니다. – LotoLo
아니요, 사용 된 터미널 에뮬레이션이 vt100과 호환되지 않으면 예상대로 작동하지 않습니다. 이식성있는 방법은 다음과 같습니다. TERM 환경 변수 설정에 의존합니다. 설정되어 있지 않으면, 사용자는 그의 환경을 고쳐야한다. – Ctx