系统维护着一个全局变量 int errno, 当大部分系统调用或者库函数出错时,可以根据该值来了解错误的描述信息。man 3 errno:
如何得到错误码描述的信息? 用 char *strerror(int errnum);
更好的方式:void perror(const char *s);
代码实例
#include <stdio.h>
#include <errno.h>
#include <string.h>
//以第一个参数作为要打开的文件名,当打开失败时,会有相应的提示
int main(int argc, char *argv[]){
FILE *fp = fopen(argv[1], "r");
if(fp == NULL){
perror("fopen");
#if 0
printf("file open failed...%d\n", errno);
printf("%s\n", strerror(errno));
#endif
return -1;
}
printf("file open success\n");
fclose(fp);
return 0;
}