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

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

相关推荐
qiu_zhongya2 分钟前
iree 用C++来运行Qwen 2.5 0.5b
开发语言·c++·人工智能
汪宁宇2 分钟前
giflib5.2.2 在Qt与VS C++中实现Gif缩放示例
开发语言·c++·qt
啊?啊?9 分钟前
C/C++练手小项目之倒计时与下载进度条模拟
c语言·开发语言·c++
AAA修煤气灶刘哥21 分钟前
Nginx 为什么这么强?10 万并发压不垮,这 3 个黑科技藏不住了!
后端·nginx·架构
西阳未落32 分钟前
C++基础(22)——模板的进阶
开发语言·c++
waves浪游32 分钟前
C++模板进阶
开发语言·c++
Mr.456736 分钟前
MQTT通信实现方案(Spring Boot 3 集成MQTT)
java·spring boot·后端
codervibe39 分钟前
用 Element Plus 快速搭建教务系统管理后台
后端
元闰子42 分钟前
对 Agent-First 数据库的畅想
数据库·后端·aigc
千里码aicood1 小时前
python+vue智慧物业管理系统设计(源码+文档+调试+基础修改+答疑)
vue.js·spring boot·后端