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

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

相关推荐
虾球xz1 小时前
游戏引擎学习第268天:合并调试链表与分组
c++·学习·链表·游戏引擎
懵逼的小黑子1 小时前
Django 项目的 models 目录中,__init__.py 文件的作用
后端·python·django
fpcc2 小时前
跟我学c++高级篇——模板元编程之十三处理逻辑
c++
格林威2 小时前
Baumer工业相机堡盟工业相机的工业视觉中为什么偏爱“黑白相机”
开发语言·c++·人工智能·数码相机·计算机视觉
小林学习编程2 小时前
SpringBoot校园失物招领信息平台
java·spring boot·后端
Dream it possible!3 小时前
LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)
c++·leetcode·位运算·哈希表·哈希集合
java1234_小锋4 小时前
Spring Bean有哪几种配置方式?
java·后端·spring
Dddle15 小时前
C++:this指针
java·c语言·开发语言·c++
不見星空5 小时前
2025年第十六届蓝桥杯软件赛省赛C/C++大学A组个人解题
c语言·c++·蓝桥杯
jiunian_cn5 小时前
【c++】异常详解
java·开发语言·数据结构·c++·算法·visual studio