C 语言标准库 - <errno.h>
目录
1.errno 变量
2.宏
1.errno 变量
errno.h 声明了一个 int 类型的 errno 变量,用来存储错误码(正整数)。
如果这个变量有非零值,表示已经执行的程序发生了错误。
#include <errno.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>int main() {int x = -1;errno = 0;int y = sqrt(x);if (errno != 0) {fprintf(stderr, "sqrt error; program terminated.\n");exit(EXIT_FAILURE);}return 0;
}
上面示例中,计算一个负值的平方根是不允许的,会导致errno不等于0。
如果要检查某个函数是否发生错误,必须在即将调用该函数之前,将errno的值置为0,防止其他函数改变errno的值。
2.宏
变量errno的值通常是两个宏EDOM或ERANGE。这两个宏都定义在errno.h。它们表示调用数学函数时,可能发生的两种错误。
- 定义域错误(EDOM):传递给函数的一个参数超出了函数的定义域。例如,负数传入
sqrt()作为参数。 - 取值范围错误(ERANGE):函数的返回值太大,无法用返回类型表示。例如,1000 传入
exp()作为参数,因为 e^1000 太大,无法使用 double 类型表示。
使用数学函数时,可以将errno的值与 EDOM 和 ERANGE 比较,用来确定到底发生了哪一类错误。
相关文章:
C 语言标准库 - <errno.h>
目录 1.errno 变量 2.宏 1.errno 变量 errno.h 声明了一个 int 类型的 errno 变量,用来存储错误码(正整数)。 如果这个变量有非零值,表示已经执行的程序发生了错误。 #include <errno.h> #include <stdio.h> #in…...
Golang自带的测试库testing的使用
testing是golang自带的测试库。 testting规则: 在待测试功能所在文件的同级目录中创建一个以_test.go结尾的文件。 测试函数名必须是TestXxxx这个形式,而且Xxxx必须以大写字母开头,另外函数带有一个*testing.T类型的参数。 // 单元测试&am…...
29.电影院售票系统(基于springboot和vue的Java项目)
目录 1.系统的受众说明 2 论文背景 2.1 国内研究现状: 2.2 国外研究现状: 2.3 所用技术 3 系统需求分析 3.1 需求分析 3.2 可行性分析 3.2.1技术可行性分析 3.2.2市场可行性分析 3.2.3经济可…...
大学生就业平台微信小程序
随着计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于大学生就业方面的程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款大学生就业平台微信小程序,能够有效…...
Redis 缓存击穿
目录 缓存击穿 什么是缓存击穿? 有哪些解决办法? 缓存穿透和缓存击穿有什么区别? 缓存雪崩 什么是缓存雪崩? 有哪些解决办法? 缓存预热如何实现? 缓存雪崩和缓存击穿有什么区别? 如何保…...
初探鸿蒙:从概念到实践
一、鸿蒙开发的环境准备 开发工具:使用 DevEco Studio,支持 ArkTS 语法。 系统要求:确保计算机符合 DevEco Studio 的最低系统需求。安装步骤:下载 DevEco Studio,安装合适的 SDK 和模拟器 二、鸿蒙应用可以…...
PHP API的路由设计思路
PHP API的路由设计是构建高效、可维护API的关键环节。以下是一套完整的PHP API路由设计思路: 一、明确设计原则 使用统一资源标识符(URI):通过URI来标识资源,确保每个资源都有一个唯一的地址。使用HTTP方法ÿ…...
工程师 - 如何访问Github
Github无法访问,涉及到IP地址、Host文件、DNS等配置。 1,查找github地址 打开https://www.ipaddress.com/网站,这个网站首页是查询自己IP的。 在上方搜索栏输入github.com,查找github的地址。 https://www.ipaddress.com/websit…...
222. 完全二叉树的节点个数 迭代
222. 完全二叉树的节点个数 已解答 简单 相关标签 相关企业 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值࿰…...
中心极限定理的三种形式
独立同分布的中心极限定理: 设 X 1 , X 2 , … , X n X_1, X_2, \ldots, X_n X1,X2,…,Xn是独立同分布的随机变量序列,且 E ( X i ) μ E(X_i) \mu E(Xi)μ, D ( X i ) σ 2 > 0 D(X_i) \sigma^2 > 0 D(Xi)σ2>0存在…...
React Native 全栈开发实战班 - 导航栈定制
在 React Native 应用中,导航栈管理是实现页面跳转和状态维护的核心机制。React Navigation 提供了强大的导航栈管理功能,允许开发者灵活地控制页面堆栈、传递参数、处理返回逻辑等。本章节将深入探讨导航栈的管理与定制,包括如何控制导航栈、…...
扬州BGP高防服务器可以给企业带来哪些好处?
扬州BGP服务器是目前江苏较为出名的高防机房,随着网络安全逐渐被企业所重视,扬州机房的也被大家进行选择,但是扬州BGP高防服务器除了可以帮助企业抵御网络攻击,还有着其他的帮助,下面就让我们来了解一下吧!…...
题目讲解15 合并两个排序的链表
原题链接: 合并两个排序的链表_牛客题霸_牛客网 思路分析: 第一步:写一个链表尾插数据的方法。 typedef struct ListNode ListNode;//申请结点 ListNode* BuyNode(int x) {ListNode* node (ListNode*)malloc(sizeof(ListNode));node->…...
leetcode92:反转链表||
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例 1: 输入:head [1,2,3,4,5], left 2, right 4 输出:[1,4,3,2…...
arkUI:遍历数据数组动态渲染(forEach)
arkUI:遍历数据数组动态渲染(forEach) 1 主要内容说明2 相关内容2.1 ForEach 的基本语法2.2 简单遍历数组2.2 多维数组遍历2.4 使用唯一键2.5 源码1的相关说明2.5.1 源码1 (遍历数据数组动态渲染)2.5.2 源码1运行效果 …...
js中import引入一个export值可以被修改。vue,react
import引入的数据实际就是数据本身。 如果导出的是一个对象,该对象引入后被更改了,则会影响其他文件引入此对象 解释示例: // resources.js const obj {} export {obj} 当在a.js中import引入一个空对象obj,并且新增一个属性ob…...
PDF24:多功能 PDF 工具使用指南
PDF24:多功能 PDF 工具使用指南 在日常工作和学习中,PDF 是一种常见且重要的文档格式。无论是查看、编辑、合并,还是转换 PDF 文件,能够快速高效地处理 PDF 文档对于提高工作效率至关重要。PDF24 是一款免费、功能全面的 PDF 工具…...
域名解析线路类型有哪几种
在网络世界中,域名解析是将域名转换为IP地址的关键环节,而域名解析线路类型的不同则为域名解析提供了多样化的策略,以满足不同用户和网络环境的需求。以下是几种常见的域名解析线路类型。 电信线路 电信线路解析主要是针对中国电信网络用户…...
Spring资源加载模块,原来XML就这,活该被注解踩在脚下 手写Spring第六篇了
这一篇让我想起来学习 Spring 的时,被 XML 支配的恐惧。明明是写Java,为啥要搞个XML呢?大佬们永远不知道,我认为最难的是 XML 头,但凡 Spring 用 JSON来做配置文件,Java 界都有可能再诞生一个扛把子。 <…...
[运维][Nginx]Nginx学习(2/5)-Nginx高级
Nginx服务器基础配置实例 前面我们已经对Nginx服务器默认配置文件的结构和涉及的基本指令做了详细的阐述。通过这些指令的合理配置,我们就可以让一台Nginx服务器正常工作,并且提供基本的web服务器功能。 接下来我们将通过一个比较完整和最简单的基础配…...
【计算机视觉实战】第10章 | 单阶段目标检测YOLO与SSD:实时检测的极致追求
欢迎来到《计算机视觉实战》系列教程的第十章。在第九章我们学习了Faster R-CNN等两阶段检测器,它们精度高但速度慢。本章我们将学习单阶段检测器(One-stage Detector),特别是YOLO和SSD,它们在保持可观精度的同时实现了…...
【个人推荐】一些好用的录音转写工具
因为助教课备课的缘故,需要录制讲座的音频以整理知识点。一次讲座的音频内容很长,即使3x速快进播放依然很耗费时间,因此录音转写的需求浮现了出来。于是闲暇之余探索了下市面上的录音转写工具,浅浅记录下体验。 下面主要推荐三款…...
(全网最全)分享8款AI工具,毕业论文AIGC率速降至5%!
【CSDN AI底层算法专栏 / 核心摘要】 2026年,学术圈的反AI审查已经演变成了一场“算法级别的军备竞赛”。随着知网、万方全面接入大模型语义探针,靠改同义词、甚至靠传统Prompt洗稿的套路已全线崩溃。为了帮大家避坑,本期专栏我从代码和算法逻…...
终极指南:如何用ImageToSTL将任何图片变成3D打印模型
终极指南:如何用ImageToSTL将任何图片变成3D打印模型 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side. …...
2025年9月中国电子学会青少年软件编程(图形化)等级考试试卷(一级)答案 + 解析
25年3月一级真题在线测评:http://jw.52coding.site/s/mwIJDR 青少年软件编程(图形化)等级考试试卷(一级) 一、单选题(共25题,共50分) 1.当前舞台背景为最后一个背景“背景3”,使用“下一个背景”…...
08-多平台集成实战
OpenClaw 多平台集成实战 “让 AI 助手跨越每个通讯渠道,无处不在。” — OpenClaw 在当今多元化的通讯环境中,一个优秀的 AI 助手不应该被限制在单一平台上。OpenClaw 的核心优势之一就是其强大的多平台集成能力,能够同时连接 Discord、Telegram、飞书、企业微信、QQ、钉钉…...
英特尔 BOT 优化 Geekbench 6:性能提升背后的争议与影响
【导语:英特尔的二进制优化工具(BOT)引发关注,它能修改可执行文件指令序列提升性能,但仅与少数应用配合。研究人员对其在 Geekbench 6 上的表现进行测试,结果引发对基准测试公平性的思考。】启动开销&#…...
C++ 网络服务端主线:从线程池到 Reactor 的完整路线图
一、为什么要写这个系列? 前面我已经把 C 并发基础和线程池完整走了一遍: std::threadstd::mutexstd::condition_variablestd::atomic手写线程池future / 拒绝策略 / 优雅关闭 但到这里,其实还只停留在: 并发组件层 也就是说&a…...
从3天到30分钟:OpCore-Simplify如何重构黑苹果配置的技术民主化之路
从3天到30分钟:OpCore-Simplify如何重构黑苹果配置的技术民主化之路 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在黑苹果技术领域&…...
手把手教你用MCP+Selenium打造专属内容发布机器人(附避坑指南)
从零构建MCPSelenium自动化发布系统的实战指南 在当今内容为王的数字时代,如何高效管理多平台内容发布成为创作者和企业的核心需求。本文将带您深入探索如何利用MCP协议与Selenium技术栈,打造一个高度定制化的自动化内容发布系统,特别针对小红…...
