对于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中没有前导斜杠,则定义的值用作终端的名称。