异常处理
#include <stdio.h> #include <errno.h> #include <string.h> /* 错误类型的错误号,由系统定义,是一个全局变量,不同异常对应不同错误号 需要提前定义,默认为0,表示程序没有异常,当出现异常时,该值置为非零 */ extern int errno; int main() { FILE *pf; // 文件指针 int errnum; // 接收:错误类型的错误号 pf = fopen("unexist.txt", "rb"); // 定义一个不存在的文件来引发异常 /* 下面是异常处理 */ if(pf == NULL) // 表示该文件不存在,即将发生异常 { // 错误号 errnum = errno; // 将错误文本信息赋值到 stderr 错误输出流进行错误信息的自动输出 fprintf(stderr, "错误号:%d\n", errnum); // perror 函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。 perror("通过 perror 输出错误"); // strerror 函数返回一个指针,指针指向当前 errno 值的文本表示形式。 fprintf(stderr, "打开文件错误:%s\n", strerror(errnum)); } else { fclose(pf); } return 0; }