这是“Beginning Linux Programming”一书中的示例程序:
#include
#include
#include
#include
int main()
{
setupterm(“未列出”,fileno(stdout),(int *)0);
printf(“完成。\n”);
退出(0);
}
运行它,我得到以下结果:
./badterm
“不公开”:未知的终端类型。
根据setupterm函数定义,它必须返回0:“terminfo数据库中没有匹配的条目”。代替此,程序终止。为什么?
最佳答案
您似乎要求它这样做。从我机器上的man setupterm
中:
大概,如果您想处理自己返回的任何错误,则必须为errret
(第三)参数提供一个非NULL指针值。