C:根据errno获取错误信息

errno虽然可以描述错误码,但是每次对照表格查询错误原因还是有些不遍历。

库函数提供了两种方式来获取错误的具体信息:

#include
void perror(const char *s);

该函数可以根据当前的errno,输出信息到标准错误输出上,输出时还可以带上通过参数传递进来的其他额外信息。

需要注意的是,需要在发生错误时立刻调用该函数,否则有可能errno被后面其他的错误冲刷掉,从而造成错误信息的不准确。

#include
char * strerror(int errnum);

strerror根据输入的错误码信息,返回一个错误字符串。

其优点是即使当前没有发生错误,也可以通过错误码查看任意的错误的信息。 

#include 
#include 
#include 

extern int errno;
int main()
{
    FILE* fp =fopen("./ttt", "r");
    if(fp == 0) 
    {
        printf("errno=%d\n", errno);
        perror("open file error");
        char * mesg = strerror(errno);
        printf("err mesg:%s\n", mesg);
        return -1;
    }
    fclose(fp);
    return 0;
}

运行程序输出:

errno=2
open file error: No such file or directory
err mesg:No such file or directory

你可能感兴趣的:(C/C++,c语言)