当前位置: 首页 > news >正文

C标准库--错误信息<errno.h>

文章目录

  • 简介
  • 库宏
    •    1)、extern int errno
    •    2)、EDOM Domain Error
    •    3)、ERANGE Range Error

简介

   C 标准库的 errno.h 头文件定义了整数变量 errno,它是通过系统调用设置的,在错误事件中的某些库函数表明了什么发生了错误。该宏扩展为类型为 int 的可更改的左值,因此它可以被一个程序读取和修改。
  在程序启动时,errno 设置为零,C 标准库中的特定函数修改它的值为一些非零值以表示某些类型的错误。您也可以在适当的时候修改它的值或重置为零。
  errno.h 头文件定义了一系列表示不同错误代码的宏,这些宏应扩展为类型为 int 的整数常量表达式。

库宏

   1)、extern int errno

     这是通过系统调用设置的宏,在错误事件中的某些库函数表明了什么发生了错误。

		   FILE *fp;fp = fopen("file.txt", "r");if( fp == NULL ) {fprintf(stderr, "Value of errno: %d\n", errno);fprintf(stderr, "Error opening file: %s\n", strerror(errno));}else {fclose(fp);}结果:Value of errno: 2Error opening file: No such file or directory

   2)、EDOM Domain Error

     这个宏表示一个域错误,它在输入参数超出数学函数定义的域时发生,errno 被设置为 EDOM。

		   errno = 0;val = sqrt(-10);if(errno == EDOM) {printf("Invalid value \n");}else {printf("Valid value\n");}结果:Invalid value

   3)、ERANGE Range Error

     这个宏表示一个范围错误,它在输入参数超出数学函数定义的范围时发生,errno 被设置为 ERANGE。

		   double x;double value;x = 2.000000;value = log(x);if( errno == ERANGE ) {printf("Log(%f) is out of range\n", x);}else {printf("Log(%f) = %f\n", x, value);}
结果:Log(2.000000) = 0.693147
http://www.dtcms.com/a/494485.html

相关文章:

  • SpringCloud 获取Feign请求的真实IP地址
  • 目标检测算法在家禽养殖领域中的应用
  • MUI组件库与主题系统全面指南
  • 用 PyTorch 搭建 CIFAR10 线性分类器:从数据加载到模型推理全流程解析
  • 什么是机械设备制造ERP?哲霖软件如何助力企业实现降本增效?
  • 【小白笔记】关于 Python 类、初始化以及 PyTorch 数据处理的问题
  • HTTPS 内容抓取实战 能抓到什么、怎么抓、不可解密时如何定位(面向开发与 iOS 真机排查)
  • Gartner发布数据安全态势管理市场指南:将功能扩展到AI的特定数据安全保护是DSPM发展方向
  • 建站系统的应用场景一条龙搭建网站
  • 公司网站自己做的网站怎么被搜录
  • item_video:获得淘宝商品视频 API 接口实战演示说明
  • appium学习
  • [Linux]学习笔记系列 -- [kernel][irq]softirq
  • 家庭相册私有化:Immich+cpolar构建你的数字记忆堡垒
  • 存储同步管理器SyncManager 归纳
  • 做游戏网站多少钱建设电子商务网站要多少钱
  • iBizModel 实体通知(PSDENOTIFY)模型详解
  • mysql函数大全及举例
  • 人工智能综合项目开发3-----农业病虫害识别dataclean.py
  • R语言手搓一个计算生存分析C指数(C-index)的函数算法
  • 使用leaflet库加载服务器离线地图瓦片(这边以本地nginx服务器为例)
  • 无状态协议HTTP/HTTPS (笔记)
  • 模式识别与机器学习课程笔记(8):特征提取与选择
  • python+uniapp基于微信美食点餐系统小程序
  • 【邀请函】锐成信息 × Sectigo | CLM - SSL 证书自动化运维解决方案发布会
  • 基于MATLAB实现基于距离的离群点检测算法
  • 冠县网站建设电话wordpress插件 电商
  • 【Android】RecyclerView LayoutManager 重写方法详解
  • 数据流通合规新基建 隐私计算平台的三重安全防线
  • MySQL-2--数据库的查询