TERMCAP(3)

명칭
tgetent, tgetnum, tgetflag, tgetstr, tgoto, tputs, tparm, __set_ospeed - 터미널과는 독립한 조작 함수

서식
#include <termcap.h> char PC; char *BC; char *UP; short ospeed; int tgetent(char *bp, const char *name) int tgetnum(const char *id) int tgetflag(const char *id) char * tgetstr(const char *id, char **area) char * tgoto(const char *cm, int destcol, int destline) int tputs(const char *cp, int affcnt, int (*outc)(int)) char * tparm(const char *cp, ...) void __set_ospeed(unsigned int speed)

해설
이러한 함수는, 단말 기능 데이타베이스, 보통은 /usr/share/misc/termcap (으)로부터 기능을 추출해 사용해, 그 형식은 termcap(5) 에 설명되어 있습니다. 이것들은 저레벨의 routine입니다. 보다 고레벨의 패키지에 대해서는, curses(3) (을)를 참조해 주세요.

tgetent() 함수는, 단말명의 입력을 bp 의 버퍼에 추출합니다. 인수 bp (은)는 사이즈 1024 의 캐릭터 버퍼가 아니면 안되어, 또 거기에 계속되어 함수 tgetnum(), tgetflag(), tgetstr() 등의 호출을 해도 보관 유지됩니다. tgetent() 함수는, 데이타베이스 파일 termcap 하지만 어느 것도 열지 않는 경우는 -1 을 돌려주어, 준 단말명이 입력되어 있지 않은 경우는 0 을 돌려주어, 모든 것이 잘 처리되었을 경우는 1 을 돌려줍니다. 이 함수는 환경속에서 TERMCAP 변수를 찾습니다. 그것이 발견되어, 그 값이 slash로 시작되지 않고, 또 단말 타입 name 하지만 환경 string TERM (와)과 같은 경우는, termcap 파일을 읽지 않고 TERMCAP string를 사용합니다. slash로 시작되어 있는 경우는, 검색한다 termcap 파일의 패스명으로서 그 string를 사용합니다. TERMCAP 하지만 slash로 시작되어 , 한편 name 하지만 TERM (와)과 다른 경우는, 환경 변수 TERMPATH 하지만 존재하지 않으면 tgetent() 함수는 파일 $HOME/.termcap 및 /usr/share/misc/termcap (을)를 이 차례로 찾습니다. TERMPATH 하지만 존재하면, 그것이 검색하는 파일의(공백 또는 코론으로 단락지어진) 패스명 리스트를 지정합니다. 복수의 파일을 찾는 경우로 요구된 엔트리에 tc 필드가 있는 경우는, 그것이 지명하는 엔트리를 같은 파일 또는 거기에 계속되는 파일안에 찾지 않으면 되지 않습니다. 이것에 의해, tgetent() 함수를 호출하는 프로그램에의 입력의 스피드를 올릴 수가 있는 것과 동시에, 새로운 단말 기술의 디버그나 /usr/share/misc/termcap 파일을 쓸 수 없는 경우에 자신의 단말의 단말 설명을 만드는 것이 간단하게 됩니다.

tgetnum() 함수는, 기능 id 의 수치를 거두어 들여, 그것이 단말에 대해서 주어지지 않은 경우는 -1 을 돌려줍니다. tgetflag() 함수는, 지정된 기능이 단말의 엔트리에 존재하는 경우에는 1 을 돌려주어, 존재하지 않는 경우에는 0 을 돌려줍니다. tgetstr() 함수는, 기능 id 의 string치를 돌려주어, 그것을 area 의 버퍼에 넣어 area 포인터를 진행시킵니다. 이 함수는, 커서의 주소 및 팟딘그 정보를 제외해, termcap(5) 에 기술된 이 필드의 약칭을 디코드합니다. tgetstr() 함수는, 그 기능이 발견되지 않는 경우는 NULL (을)를 돌려줍니다.

tgoto() 함수는, destline 행의 cm (으)로부터 go to 컬럼까지로 디코드된 커서 주소 string를 돌려줍니다. 이 함수는, 돌려주는 string에 \n, ^D 또는 ^@ (을)를 넣는 것을 피하기 위해서(때문에) 필요한 경우에는 외부 변수 UP ( up 기능으로부터 ) 및 BC ( bs (은)는 아니고 bc 하지만 주어지고 있는 경우 )를 사용합니다. ( tgoto() 함수를 호출하는 프로그램은, tgoto() 함수가 탭을 출력할 가능성이 있으므로, 반드시 XTABS 비트를 오프로 해 두지 않으면 안됩니다. 어쨌든, termcap 를 사용하고 있는 프로그램은, 단말에 따라서는 control-I 를 다른 기능, 예를 들면 파괴 불능 스페이스에 사용하고 있으므로, 일반적으로 XTABS (을)를 오프로 한다 필요가 있는 것에 주의해 주세요 ) . 이해할 수 없다 % 순차 순서가 주어지고 있는 경우는, tgoto() 함수는 (OOPS) (을)를 돌려줍니다.

tputs() 함수는, cp string의 선두의 팟딘그 정보를 디코드합니다. affcnt (은)는, 이 조작에 의해 영향을 받는 행수를 주어 이것에 해당하지 않는다 경우는 행수는 1 이 되어, outc (은)는 각 캐릭터와 함께 순서에 불려 가는 routine입니다. 외부 변수 PC 에는, 패드 캐릭터가 null (^@) 그럼 부적당한 경우에는, ( pc 기능으로부터 ) 사용해야 할 패드 캐릭터가 들어가 있지 않으면 안됩니다. 외부 변수 ospeed 에는, stty(3) 에 의해 encode 된 단말의 출력 속도가 들어가 있지 않으면 안됩니다. __set_ospeed() 함수는, cps 로 나타낸 속도 speed (을)를 가장 가깝다 stty(3) 코드화 된 속도로 변환해, 그 결과를 ospeed 에 보존합니다.

tparm() 함수는, string cp (이)가 주어진 파라미터에 의해 인스턴스로 변환합니다. cp 에 그 파라미터가 적용된 결과를 가리키는 포인터 하지만 돌려주어집니다. 이해할 수 없다 % 순차 순서가 주어졌을 경우는, tparm() 함수는 (OOPS) (을)를 돌려줍니다.

파일
/usr/lib/libtermcap.a
    -l ltermcap 프로그램 라이브러리 ( -l ltermlib (이)라고도 불립니다 )
/usr/share/misc/termcap
    표준 단말 기능 데이타베이스
$HOME/.termcap
    유저의 단말 기능 데이타베이스

참조
ex(1), curses(3), termcap(5)

역사
tgetent() 함수는, 4.0BSD 에 나타났습니다.