美文网首页
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获取错误提示

    前言 有时候我们写程序会出现一些错误,比如打开文件失败返回NULL,但是我们不知道是什么导致的,这时我们可以利用e...

  • access 和 errno (Linux C )

    errno在 linux 中使用 c 语言编程时,errno 是很有用的。它可以把最后一次调用 c 的方法的错误代...

  • C语言学习易错知识集锦

    对于初学C语言经常会出现一些错误,而C语言给的错误是不是提示让你懵了很久,今天带给大家一些C语言的错误提示和解析:...

  • 初学C语言编程必看,为什么运行错误,你知道吗

    初学者经常会出现一些错误 而C语言给的错误提示让我懵了很久 这不今天带给大家一些C语言的错误提示和解析 想学习C语...

  • CocoaPods常见报错的解决办法

    报错: Errno::ENOENT - No such file or directory 这个错误一般会提示一堆...

  • c语言错误处理errno, perror(), strerror

  • Linux errno详解

    1. 错误码 / errno Linux中系统调用的错误都存储于 errno中,errno由操作系统维护,存储就近...

  • C标准库——

    C 标准库的errno.h头文件定义了整形变量 errno, 它是通过系统调用设置的,在错误事件中的某些库函数表明...

  • C 语言常见的内存坑

    C 语言常见的内存错误类型 提起 C 语言,大家可能会第一个想到指针,接着可能会想起与内存有关的错误。我们就利用这...

  • 7.错误处理

    C语言中的错误处理可以通过以下函数和全局变量去跟踪 errno系统预定义的全局变量,在库函数出错的时候,可以设置e...

网友评论

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

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