C 错误处理


C语言通过测试函数的返回值来判断是否有错误发生。如函数返回值为-1或NULL一般表示有错误发生,程序需要做相应的错误处理。


通常函数执行过程中发生错误时,会往外部变量errno中写一个错误码。错误码定义在error.h文件中。

错误输出

C标准库提供了strerror函数和perror函数用于输出和错误码errno对应的文本错误信息。

strerror函数返回错误码errno对应的文本错误信息。

perror函数输出错误信息。输出参数,后面跟一个:和空格,接着是errno对应的文本错误信息。

下面是错误输出的例子:

#include <stdio.h>
#include <errno.h>
#include <string.h>
int main(int argc, const char * argv[]) {
    FILE *fp;

    fp = fopen("no_exist_file", "r");
    if (fp == NULL) {
        perror("Failed to open file "); // Failed to open file : No such file or directory
        printf("Error message : %s \n", strerror(errno)); // Error message : No such file or directory  
    } else
        fclose(fp);

    return 0;
}