对于buffer,当使用GNU版本的termcap时,不需要分配内存。这是我们在Linux下可以假设的!否则,您将需要分配2048字节。(以前,buffer只需要1024字节,但大小已经翻倍)。
tgetent(...) 成功时返回1,当找到数据库但没有TERM的条目时返回0。其他错误将返回不同的值。
以下示例应解释如何使用tgetent(...)
#define buffer 0 char *termtype=getenv("TERM"); int ok; ok=tgetent(buffer,termtype); if(ok==1) /* all right, we have the entry */ else if(ok==0) /* uups, something wrong with TERM * check termtype first, then termcap database */ else /* huuu, fatal error */
默认情况下,termcap使用/etc/termcap/作为数据库。如果设置了环境变量TERMCAP,例如$HOME/mytermcap,则所有函数将使用它而不是/etc/termcap。如果TERMCAP中没有前导斜杠,则定义的值用作终端的名称。