美文网首页
C语言利用errno获取错误提示

C语言利用errno获取错误提示

作者: itfitness | 来源:发表于2021-12-17 16:30 被阅读0次

    前言

    有时候我们写程序会出现一些错误,比如打开文件失败返回NULL,但是我们不知道是什么导致的,这时我们可以利用errno来辅助我们找到原因

    使用方法

    首先写一段打开文件的代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<errno.h>
    int main(){
            FILE * fp = fopen("test","r");
    
            if(NULL == fp){
                    printf("错误:%d\n",errno);
    
            }
            return 0;
    }
    

    这里我们打开的test文件并不存在,因此执行此段代码必定会返回NULL


    当我们打开文件失败的时候,系统会将错误信息存到errno变量中,我们可以通过查看errno来查找原因,如下:

    这时我们可以通过查看错误码来找到错误原因,通过如下命令查看错误码对应的信息:
    vim /usr/include/asm-generic/errno-base.h
    

    但是这样查看的话太麻烦,因此我们可以借助strerrorAPI来查看,它可以将错误码转为错误信息返回,如下所示:
    DESCRIPTION
           The strerror() function returns a pointer to a  string  that  describes
           the  error  code  passed  in  the  argument  errnum, possibly using the
           LC_MESSAGES part of the current locale to select the  appropriate  lan‐
           guage.   (For  example,  if  errnum is EINVAL, the returned description
           will be "Invalid argument".)  This string must not be modified  by  the
           application,  but may be modified by a subsequent call to strerror() or
           strerror_l().  No other library  function,  including  perror(3),  will
           modify this string.
    

    然后我们调整代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<errno.h>
    #include<string.h>
    int main(){
            FILE * fp = fopen("test","r");
    
            if(NULL == fp){
                    printf("错误:%s\n",strerror(errno));
    
            }
            return 0;
    }
    

    这时我们运行程序发现输出的错误信息就是我们能看懂的了


    相关文章

      网友评论

          本文标题:C语言利用errno获取错误提示

          本文链接:https://www.haomeiwen.com/subject/kdpifrtx.html