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

news2024/11/27 5:25:01

前言

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


文章目录

  • 前言
  • 一、错误信息报告函数
    • 什么是错误信息报告函数
    • 错误信息报告函数的作用
    • strerror
      • 函数介绍
      • strerror函数使用
      • 错误码对应的错误信息

一、错误信息报告函数

什么是错误信息报告函数

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

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

错误信息报告函数的作用

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

strerror

函数介绍

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

char *strerror(int errnum);

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

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

strerror函数使用

/* 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编译器中可以通过以下代码查看

#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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/780350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NLP多模型集成与比较

目录 数据集目的所用的两种词嵌入方式步骤随机读取10000条文本TF-IDF方法多模型比较CNN (用于比较 TF-IDF嵌入和词向量嵌入时的区别)LSTMBI-LSTM 数据集 10分类的新闻文本分类任务 目的 1.比较不同数据处理方式&#xff0c;词嵌入方式对任务的影响 2.比较相同处理方式下&…

对于awd

最近我们老师直接说要我准备awd&#xff0c;大概率要我上场我就顺便整理一下awd的资料&#xff08;准备写很多所以建议大家收藏一下&#xff09; 攻防指北 先来一个思维导图 Awd竞赛 AWD(Attack With Defense&#xff0c;攻防兼备)是一个非常有意思的模式&#xff0c;你需要…

4P营销模型

4P营销模型 菲利普科特勒在其畅销书《营销管理&#xff1a;分析、规划与控制》中进一步确认了以4P为核心的营销组合方法. 模型介绍 「4P营销模型」是市场营销中的经典理论&#xff0c;代表了产品、价格、促销和渠道四个要素。这些要素是制定市场营销策略和实施计划的关键组成部…

ARM(Day5)

思维导图&#xff1a; 通过封装函数实现点灯&#xff1a;

CAN转EtherNet/IP网关can协议支持哪两种报文

你是否曾经遇到过不同的总线协议难以互相通信的问题&#xff1f;远创智控的YC-EIP-CAN网关为你解决了这个烦恼&#xff01; 远创智控YC-EIP-CAN通讯网关是一款自主研发的设备&#xff0c;它能够将各种CAN总线和ETHERNET/IP网络连接起来&#xff0c;解决不同总线协议之间的通信障…

小程序 methods方法互相调用 this.onClickCancel is not a function

背景 做了一个自定义的弹出对话窗口&#xff0c;主要是自定义一些文本颜色。 问题 但是点击按钮事件&#xff1a;取消与确认&#xff0c;调用了同一个接口&#xff0c;然后想着走不同方法&#xff0c;需要调用methods其他方法。然后报错了&#xff1a; VM1081 WAService.js:…

【综述】化学预训练模型

目录 摘要1 引言2 分子描述符和编码器 (Molecular Descriptors and Encoders)3 预训练策略 (Pre-training Strategies)3.1 自动编码 (AutoEncoding, AE)3.2 自回归建模 (Autoregressive Modeling, AM)3.3 掩蔽组件建模 (Masked Component Modeling, MCM)3.4 上下文预测 (Contex…

绘出「星辰大海」:华为云Astro轻应用新手指南-第二章

第2章 Astro轻应用奇遇——用鼠标「拖拽」的开发 不被编程所困&#xff0c;像玩拼图一样打造订购系统&#xff01; 今天&#xff0c;我们用鼠标拖拽的方式开发订餐应用。 读过本章&#xff0c;你可以同理开发出各异的订购小程序。 继续Astro轻应用旅行吧&#xff01; 第1站…

macOS coreAudio 之 AudioQueue 播放本地音频文件

macOS的音频模块使用还是和 iOS有细微差别的。 今天记录是的是 使用 AudioQueue 配合 AudioFile 进行播放macOS 本地音频文件 本文打仓库代码为&#xff1a; JBPlayLocalMusicFile.m CoreAudio 作为Apple音频系统中音频库的集合&#xff0c;今天需要使用到的库为&#xff1a…

力扣热门100题之三数之和【中等】

题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组…

ChatGPT 最佳实践指南

GPT Best Practices GPT 最佳实践指南 This guide shares strategies and tactics for getting better results from GPTs. The methods described here can sometimes be deployed in combination for greater effect. We encourage experimentation to find the methods that…

Java类的封装

封装将类的某些信息隐藏在类内部&#xff0c;不允许外部程序直接访问&#xff0c;只能通过该类提供的方法来实现对隐藏信息的操作和访问。 例如&#xff1a;一台计算机内部极其复杂&#xff0c;有主板、CPU、硬盘和内存&#xff0c; 而一般用户不需要了解它的内部细节&#xff…

涤生大数据教学集群的首次运维现场复现

事故背景交代 涤生大数据花费重金购得几台较高配置的阿里云服务器机器&#xff0c;构建了一整套以cdh为核心的大数据课程教学、学员实操练习环境、但是&#xff0c;就是这个但是&#xff0c;以为集群规模目前相对较小。不会有什么幺蛾子发生&#xff0c;于是运维中最核心的监控…

[Linux] CentOS7 中 pip3 install 可能出现的 ssl 问题

由于解决问题之后, 才写的博客, 所以没有图片记录. 尽量描述清楚一些 今天写代码的时候, 突然发现 文件里用了#define定义宏之后, coc.nvim的coc-clangd补全就用不了 :checkhealth了一下, 发现nvim忘记支持python3了 尝试pip3 install neovim的时候, 发现会警告然后安装失败.…

设计模式结构型——代理模式

目录 代理模式的用途 代理模式的实现 静态代理 JDK动态代理 CGLIB动态代理 代理模式的特点 与其他模式比较 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许通过创建一个代理对象来间接访问原始对象。代理模式的核心思想是将对目…

20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片

20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片 2023/7/21 22:58 1、前言&#xff1a; AES-128加密的ts视频切片【第一个】&#xff0c;打开有时间限制的&#xff01; https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?typ…

小鹏G6吹响汽车智能化普惠号角

监制 | 何玺 排版 | 叶媛 小鹏G6大卖。目前其订单的交车周期已经长达12周。这款主打智能化的“未来之车”&#xff0c;已经正式吹响了汽车智能化普及的号角。 01 订单排满&#xff0c;小鹏G6成“爆款” 7月11日&#xff0c;小鹏汽车董事长何小鹏在社交媒体上发了一张照片&am…

Flink笔记

Flink笔记 2.Flink学习笔记2.1流式处理对比2.2 Flink核心概念2.2.1并行度2.2.2算子链2.2.3任务槽 2.3 DataStream2.3.2 读取数据源-源算子&#xff08;Source&#xff09;2.3.3 转换算子&#xff08;Transformation&#xff09; 2.Flink学习笔记 2.1流式处理对比 学习Spark S…

Django设置权限管理

目录 整体思路 1.使用django自带的后台功能添加组和用户 启动django服务后&#xff0c;在Django终端添加一个账号 在网页上输入网址&#xff0c;跳转到登录页面 Groups 新增组&#xff0c;设置组的名字&#xff0c;对应的权限Save即可 Users 将用户绑定组或单独设置权限 2.用…

arm-day2

汇编实现三个灯循环点亮 .text .global _start _start: /**********LED1点灯**************/ RCC_TNIT:ldr r0,0x50000a28ldr r1,[r0]orr r1,r1,#(0x1 << 4)orr r1,r1,#(0x1 << 5)str r1,[r0]LED_TNIT:ldr r0,0x50006000ldr r1,[r0]and r1,r1,#(~(0x3 << 20…