美文网首页unix
C语言_程序出现错误获取错误信息

C语言_程序出现错误获取错误信息

作者: 卢融霜 | 来源:发表于2019-10-28 18:17 被阅读0次

前言

C语言中通过返回值来表示错误形式,一般规则如下:
如果函数的返回值类型是int类型,并且函数的返回值不可能是负数时,则返回0表示正常结束,返回-1表示出错
如果函数的返回值类型是int类型,函数的返回值可能是负数时,使用指针作为函数的形参将函数的结果带出去,然后使用0表示正常结束,使用-1表示出错
如果函数的返回值类型是指针类型,则返回NULL表示失败,其他值表示正常结束
如果不考虑函数是否出错的情况,则返回类型使用void

全局变量errno

系统预定义了一个整型的全局变量errno。在库函数和系统调用出错的时候,就会设置errno的值,然后可以根据errno的值找到描述错误的字符串。
头文件errno.h中包含对errno全局变量的外部声明和各种错误号的宏定义、错误的描述信息。

#include <errno.h> 
#include<stdio.h>
extern int errno;
int main(){
//意思一下,errno的值不一定变化 (请忽略部分语法错误)
 printf("%d\n",0/3);
 printf("%d",errno);
}

注意

errno可以用于获取错误的原因,但是不能用于判断函数调用是否成功的依据,因为errno是一个全局变量,一旦程序中出现错误,则会修改errno的值,那么后续的代码中无论是否出错,errno都会有一个值。

错误信息

根据错误的编号获取错误的描述信息
功能:返回错误编号对应的描述错误的字符串
参数:errnum:错误的编号
返回值:找不到错误的编号,返回 “Unknown error nnn”字符串的首地址
找到错误的编号,返回描述错误的字符串的首地址

char *strerror(int errnum);
#include<stdio.h>
#include <string.h>
#include <errno.h> 
extern int errno;
int main(){
//意思一下(请忽略部分语法错误)
 printf("%d\n",0/3);
 printf("%s\n",strerror(errno));
}

标准错误输出

void perror (const char* s);

通过标准错误输出显示最近一次函数调用的错误信息
功能:输出最近一次函数调用的错误信息
参数:s 用户自定义的字符串
返回值:该函数不返回
注意:先输出参数s的内容,然后输出':'和一个空格、描述错误的信息,最后是一个换行符

#include<stdio.h>
int main(){
//意思一下(请忽略部分语法错误)
 printf("%d\n",0/3);
 printf("%s\n",perror("错误标题"));
}

%m

printf(“%m”);

通过printf函数输出最近的一次错误信息

注意:在windows下测试,%m没有效果。

#include<stdio.h>
int main(){
//意思一下(请忽略部分语法错误)
 printf("%d\n",0/3);
 printf("错误标题: %m\n");
}

相关文章

  • C语言_程序出现错误获取错误信息

    前言 C语言中通过返回值来表示错误形式,一般规则如下:如果函数的返回值类型是int类型,并且函数的返回值不可能是负...

  • C语言的内存布局

    C语言编程程序的内存如何布局 C语言程序连接过程中的特性和常见错误 C语言程序的运行方式 一:C语言程序的存储区域...

  • 编程字典-C语言基础教程源码

    C源码示例C源码示例C语言文件扩展名第一个C程序C语言度量单位转换C语言函数 调试C程序C语言语义错误C实例程序C...

  • python:异常

    程序运行时遇到错误就会停止运行,并提示错误信息即为异常 程序停止运行并提示错误信息即为抛出异常 程序开发时,很难将...

  • python 3 安装某些库的时候需要Microsoft Vis

    python 3 安装某些库的时候需要Microsoft Visual C++ 14.0 出现的错误信息 erro...

  • Python全栈之路系列之异常处理

    当程序出现错误的时候,进行捕捉,然后根据捕捉到的错误信息进行对应的处理 Even if a statement o...

  • js 中的 try catch finally

    try/catch/finally 语句用于处理代码中可能出现的错误信息。 错误可能是语法错误,通常是程序员造成的...

  • Go语言异常处理

    异常处理 异常处理分为两种提示用户错误信息但不终止程序直接中断程序 提示错误信息(不终止程序) 方法一 fmt.E...

  • C语言打印错误信息

    目录 效果展示 有错误的时候会打印出错的文件名、出错的函数名和出错的行号 实现步骤 1.定义宏 2.创建测试函数 ...

  • 2.3 错误处理

    关于运行错误,HALCON/C++默认打印错误信息并且终止程序。然而在某些应用中,放宽这个法则可能更有用。比如,如...

网友评论

    本文标题:C语言_程序出现错误获取错误信息

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