C语言库函数 — 错误信息报告函数

前言

本文介绍错误信息报告函数
错误信息报告函数的作用: 帮助程序员快速定位代码中的错误,以便更快地进行调试和修复问题。


文章目录

一、错误信息报告函数

什么是错误信息报告函数

错误信息报告函数是一种软件编程中的函数,主要用于处理和报告程序运行时的错误和异常信息。 当程序运行时出现错误或异常情况时,错误信息报告函数会捕获错误信息,然后将错误信息输出到控制台、日志文件或其他指定的目标,以帮助开发人员找出程序中出现的问题并进行调试。通常,在开发过程中,使用错误信息报告函数可以有效地减少程序出错的时间,加速错误修复。

库函数在执行的时候,发生错位会将一个错误码存放errno这个变量中errno是C语言提供的一个全局的变量

错误信息报告函数的作用

**错误信息报告函数可以帮助开发人员快速检测程序中的错误,更好地诊断和解决问题。**通过记录和报告错误消息,开发人员可以了解程序的运行状况,识别可能存在的问题,并对其进行更有效的调试。此外,错误信息报告函数还可以帮助开发人员追踪错误的发生位置、类型和原因,并提供有用的调试信息,以便更快地解决错误。

strerror

函数介绍

strerror函数是一个C标准库函数,用于将errno变量的值转换为对应的错误消息字符串。errno是一个全局变量,它在发生错误时会被设置为一个非零值。strerror函数的原型如下:

c 复制代码
char *strerror(int errnum);

它的参数errnum通常就是errno的值。strerror函数返回一个指向错误消息字符串的指针。例如,如果errno为EACCES,则strerror(errno)返回字符串"Permission denied"。

strerror函数通常用于打印错误消息或将错误消息写入日志文件。它可以帮助程序员更好地理解程序中的错误。strerror函数是一个C标准库函数,用于将errno变量的值转换为对应的错误消息字符串。errno是一个全局变量,它在发生错误时会被设置为一个非零值。strerror函数的原型如下:

strerror函数使用

c 复制代码
/* strerror example : error list */
#include <stdio.h>
#include <string.h>
#include <errno.h>//必须包含的头文件
int main ()
{
 FILE * pFile;
  pFile = fopen ("unexist.ent","r");
  if (pFile == NULL)
    printf ("Error opening file unexist.ent: %s\n",strerror(errno));
    //errno: Last error number
  return 0;
}
Edit & Run

错误码对应的错误信息

在vs编译器中可以通过以下代码查看

c 复制代码
#include<stdio.h>
#include<errno.h>
#include <string.h>
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d : %s\n", i,strerror(i));
	}
	return 0;
}

输出结果


以下是常见的C语言错误码及其对应的错误信息:

请注意,这仅是一些常见的错误码,实际情况可能因系统和环境而异。

  • 1:Operation not permitted
  • 2:No such file or directory
  • 3:No such process
  • 4:Interrupted system call
  • 5:I/O error
  • 6:No such device or address
  • 7:Argument list too long
  • 8:Exec format error
  • 9:Bad file number
  • 10:No child processes
  • 11:Try again
  • 12:Out of memory
  • 13:Permission denied
  • 14:Bad address
  • 15:Block device required
  • 16:Device or resource busy
  • 17:File exists
  • 18:Cross-device link
  • 19:No such device
  • 20:Not a directory
  • 21:Is a directory
  • 22:Invalid argument
  • 23:File table overflow
  • 24:Too many open files
  • 25:Not a typewriter
  • 26:Text file busy
  • 27:File too large
  • 28:No space left on device
  • 29:Illegal seek
  • 30:Read-only file system
  • 31:Too many links
  • 32:Broken pipe

如这篇博客对大家有帮助的话,希望 三连 支持一下 !!! 如果有错误感谢大佬的斧正 如有 其他见解发到评论区,一起学习 一起进步。

相关推荐
Gopher_HBo1 分钟前
请求绑定与校验
后端
牛油果子哥q8 分钟前
C++STL容器详解:vector/list/string底层扩容、迭代器失效终极解决、容器选型避坑
开发语言·c++·list
笨鸟飞不快20 分钟前
RocketMQ Lite Topic 流程梳理与设计解读
后端·rocketmq
Chen—LSN23 分钟前
C语言——数据在内存中的存储
c语言·开发语言·经验分享·笔记
今日无bug23 分钟前
列表转树:一道题搞懂 HashMap 在算法里的价值
前端·数据结构
步行cgn30 分钟前
MyBatis 查询结果字段为 null?一文讲透下划线命名与驼峰映射问题
后端
技术长镜头30 分钟前
别再只会“加索引”:从磁盘页到 B+Tree,彻底理解 MySQL 索引的设计与运行
后端·mysql
生锈的键盘31 分钟前
gRPC 多路复用全链路拆解:从客户端到服务端,中间隔着 ELB 和 Nginx 到底是怎么玩的?
后端
caimouse32 分钟前
ReactOS 图形系统分析(24):指针(光标)管理 — mouse.c/h
c语言·开发语言
laity1736 分钟前
python发光表白爱心(从零到一实现)
前端·后端