其函数原型为:void perror(const char *s)。s一般是函数名。该函数会先将函数名打印出来,然后再打印出错误信息。错误信息与errno相对应。第二个参数__LINE__是一个宏,表示当前的行数。使用方法:
void my_err2(const char* err_string,int line)
{
fprintf(stderr,"error: line:%d ",line);
perror(err_string);
exit(1);
}
}
int main()
{
.................
my_err2("open",__LINE__);
................
}
测试结果如下:
edsionte@edsionte-laptop:~/code$ ./error
error: line:29 open: File exists
}
该方法可以显示错误信息以及错误出现的行数。
以上方法是在《linux C编程》中常用的方法,我适当的作了小调整。现在将这两种方法结合起来:
void my_err3(const char* err_string,int line,int error)
{
printf("error: line:%d %s():%s with errno:%d\n",line,err_string,strerror(error),error);
exit(1);
}
int main()
{
................
my_err3("open",__LINE__,errno);
................
}