C++ Reference: Standard C++ Library reference: C Library: cerrno: errno

news/2024/3/29 9:51:27/文章来源:https://blog.csdn.net/weixin_40186813/article/details/127536701

C++官网参考链接:https://cplusplus.com/reference/cerrno/errno/


errno
int

最后的错误编号
这个宏展开为int类型的可修改左值。因此,它可以被程序读取和修改。
errno在程序启动时被设置为0,标准C库的任何函数都可以将其值修改为不同于0的某个值,通常用来表示特定的错误类别(没有任何库函数会在更改后将其值设置回0)。
程序还可以修改它的值。实际上,如果这个变量打算在库函数调用之后用于错误检查,则应该在调用之前由程序将其重置为0(因为以前对库函数的任何调用都可能更改了它的值)。
声明errno(<cerrno>)的同一个头文件也至少声明了以下宏常量,它们的值不等于0:

macro(宏)meaning when errno is set to this(当errno设置为这个的意义)
EDOMDomain error: Some mathematical functions are only defined for certain real values, which is called its domain, for example the square root function is only defined for non-negative numbers, therefore the sqrt function sets errno to EDOM if called with a negative argument.(定义域错误:一些数学函数只对某些实数定义,称为其定义域,例如,平方根函数只对非负数定义,因此,如果使用负数实参调用sqrt函数,则将errno设置为EDOM。)
ERANGERange error: The range of values that can be represented with a variable is limited. For example, mathematical functions such as pow can easily outbound the range representable by a floating point variable, or functions such as strtod can encounter sequences of digits longer than the range representable values. In these cases, errno is set to ERANGE.(范围错误:可以用变量表示的值的范围是有限的。例如,像pow这样的数学函数可以很容易地超出浮点变量所能表示的范围,或者strtod这样的函数可以遇到比范围所表示的值更长的数字序列。在这些情况下,errno设置为ERANGE。)
EILSEQIllegal sequence: Multibyte character sequence may have a restricted set of valid sequences. When a set of multibyte characters is translated by functions such as mbrtowc, errno is set to EILSEQ when an invalid sequence is encountered.(非法序列:多字节字符序列可能有一组受限制的有效序列。当mbrtowc等函数转换一组多字节字符时,当遇到无效序列时,errno将设置为EILSEQ。)

标准库的函数可以将errno设置为任何值(不仅仅是上面列出的可移植值)。特定的库实现可以在此头文件中定义附加的名称。
C++11扩展了这个头文件中需要定义的基本值集,包括了许多在POSIX环境中也可用的名称,将可移植errno值的总数增加到78个。有关完整列表,请参考errc。
与错误值相关的特定错误消息可以使用strerror获得,也可以使用perror函数直接打印。
在C++中,errno总是声明为宏,但在C中,它也可以实现为具有外部链接的int对象。

数据竞争
支持多线程的库应该在每个线程的基础上实现errno:每个线程都有自己的本地errno。
这是符合C11和C++11标准的库的要求。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟登陆系统

1.问题 日常生活中我们会遇到许多需要密码来登陆账户的场景&#xff0c;如何使用Java来创建此类登陆代码呢&#xff1f; 2.方法 import java.util.Scanner; public static void main (String[] args) { Scanner sc new Scanner (System.in); int count 3; while(cou…

控制“恶意”代码,安全运行沙箱类技术崛起

据CNNIC的最新估算&#xff0c;截至10月31日&#xff0c;我国上网用户人数达到5800万&#xff0c;上网计算机数升至2300万&#xff0c;从七月份至今&#xff0c;在短短的四个月间分别增加了1220万和687万。 这预示着我国互联网在经过一段时间的发展低潮之后正在开始回暖。 但…

贪婪算法(Huffman编码)

如果一个算法分阶段的工作&#xff0c;并且在每一个阶段都认为所做的决定是最好的&#xff0c;而不考虑将来的后果&#xff0c;这样的算法就叫做贪婪算法。贪婪算法只考虑当前局部的最优解&#xff0c;而不去考虑全局的情况&#xff0c;如果最终得到的结果是全局最优的&#xf…

【pytest官方文档】解读- 开发可pip安装的第三方插件

在上一篇的 hooks 函数分享中,开发了一个本地插件示例,其实已经算是在编写插件了。今天继续跟着官方文档学习更多知识点。 一个插件包含一个或多个钩子函数,pytest 正是通过调用各种钩子组成的插件,实现了配置、搜集、运行和报告的所有方面的功能。 通常 pytes t中的插件有…

OS实战笔记(7)-- Linux同步机制

上一篇笔记中对x86平台上原子变量、关中断、自旋锁和信号量的原理做了复习&#xff0c;本笔记回顾一下Linux使用的几种常用的同步机制。 Linux上的原子变量 Linux上提供了一个atomic_t类型表示原子变量。32位和64位版本的结构体定义如下&#xff1a; typedef struct {int coun…

文件描述符0,1,2+lseek()+共享文件覆盖解决

1.文件描述符0&#xff0c;1&#xff0c;2 程序开始运行时&#xff0c;有三个文件被自动打开&#xff0c;打开时分别使用了这三个文件描述符依次打开的三个文件分别是 /dev/stdin&#xff0c;/dev/stdout&#xff0c;/dev/stderr /dev/stdin 标准输入文件 程序开始运行时&…

requests模块和openpyxl模块

第三方模块的下载和使用 1,第三方模块就是别人大神们已经写好的模块,功能特别强大。我们如果像使用第三方模块就先要进行下载。下载完成后 才可以在python中直接调用2.下载方式一:pip工具pip工具注意每个解释器都有pip工具 如果我们的电脑上有多个版本的解释器那么我们在使用…

模型交易平台--信用卡客户消费行为分析

业务问题&#xff1a; 据《中国银行卡产业发展蓝皮书&#xff08;2021&#xff09;》显示&#xff0c;截至2020年末&#xff0c;中国信用卡累计发卡量为11.3亿张&#xff0c;其中6个月内有使用记录的活卡为7.4亿张&#xff0c;有近4亿张信用卡处于“睡眠”状态。 睡眠信用卡…

【JUC】12.读写锁与StampedLock[完结]

文章目录1. 什么是读写锁2. 锁的演化历程3. 锁降级4. 锁降级的策略5. StampedLock简介6. StampedLock的特点7. StampedLock之传统读写8. StampedLock之乐观锁9. StampedLock缺点1. 什么是读写锁 读写锁是指ReentrantReadWriteLock类 该类能被多个读线程访问或者一个写线程访问…

第二节:数据类型与变量【java】

目录 &#x1f4c3;前言 &#x1f4d7;1.数据类型 &#x1f4d5;2. 变量 2.1 变量概念 2.2 语法格式 &#x1f4d9;3.整型变量 3.1 整型变量 3.2 长整型变量 3.3 短整型变量 3.4 字节型变量 &#x1f4d8;4.浮点型变量 4.1 双精度浮点型 4.2 单精度浮点型 &#…

拓端tecdat|用Python进行图像模糊处理和特征提取

全文链接&#xff1a;http://tecdat.cn/?p9015 原文出处&#xff1a;拓端数据部落公众号 在本文中&#xff0c;我将带您了解图像处理的一些基本功能。特征提取。但是这里我们需要更深入的数据清理。但是数据清理是在数据集&#xff0c;表格&#xff0c;文本等上完成的。如何在…

vue使用canvas实现手写电子签名;vue使用vue-esign插件实现手写电子签名;H5使用画布签名

功能&#xff1a; 1.兼容 PC 和 Mobile&#xff1b; 2.画布自适应屏幕大小变化&#xff08;窗口缩放、屏幕旋转时画布无需重置&#xff0c;自动校正坐标偏移&#xff09;&#xff1b; 3.自定义画布尺寸&#xff08;导出图尺寸&#xff09;&#xff0c;画笔粗细、颜色&#xff0…

Arduino UNO 可视化GT-24工业级无线透传

Arduino UNO 可视化GT-24工业级无线透传一、前言二、硬件要求三、参数基础四、原理剖析五、透传思路六、程序概要七、arduino使用接线八、成果展示一、前言 无线透传市面上较为常见的是基于蓝牙、esp的多种透传模块&#xff0c;今天介绍的则是用NRF24L01芯片构成的电路。&…

Python第七章作业

实例一: class Geese: 大雁类 def __init__(self,beak,wing,claw): print("我是大雁类!我有以下特征:") print(beak) print(wing) print(claw) def fly(self,state): print(state)**********调用方法**********beak_…

MyBatis中的reflection包(一)ObjectFactory,PropertyTokenizer, Invoker, Reflector

内容概要 reflection是MyBatis关于反射的工具包&#xff0c;是实现其它功能的基石之一。这里我不准备贴上源码然而逐行解释&#xff0c;而是从需求分析的角度来复现。 ObjectFactory 现在有这样的需求&#xff1a;给你一个Class对象&#xff0c;要求你创建它的实例&#xff…

Kong自动注册kong-spring-boot-stater

前言 kong-spring-boot-stater框架是为了解决SpringBoot项目和kong网关的自动注册&#xff0c;虽然Kong网关有提供可视化管理后台的操作界面&#xff0c;但是在多服务、多环境的时候在管理后台挨个配置每个服务节点是比较麻烦的&#xff0c;所以这也是kong-spring-boot-stater…

图形写稿基础,含teaser figure的特殊排版方法

写在前面&#xff1a;这是第一次投稿后针对论文写作部分的总结。需要注意的是&#xff1a;老师提了意见&#xff0c;一定要快速改&#xff0c;否则会很恼人。 1. 图片展示 构图要美观&#xff0c;保证横平竖直&#xff1b;图片中文字保证和文章正文中文字一样大小&#xff1b;…

VUE |“ 登录页面”的权限以及接口问题

目录 一、功能需求 二、前提准备 三、具体实现 一、功能需求 今天写到项目的登录页面&#xff0c;我这边是没有后台数据接口的&#xff0c;所以我们用了Mock模拟了一个假的数据&#xff0c;那么我们应该怎么实现呢&#xff1f;我们先来看一下功能需要。 当我们退出登录…

系分 - 系统可靠性分析与设计

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 系分 - 系统可靠性分析与设计 考点摘要 可靠性相关基本概念&#xff08;★&#xff09;系统可靠性分析&#xff08;★★&#xff09;软件可靠性设计&#xff08;★★&#xff09; 系统故障类型 系统故障是指由…

09代码

实例1 def division():print(\n==========分苹果了===========\n)apple=int(input(请输入苹果的个数))children=int(input(请输入来了多少个小朋友))result=apple//childrenremain=apple-result*childrenif remain>0:print(apple,个苹果,平均分给,children,个小朋友,每人分…