<cerrno>
文件头名称:
<cerrno>(errno.h)
文件头描述:
文件内定义了如下的宏
| errno | 最后一个错误代码 |
加上其他至少的三个宏常量:EDOM,ERANGE 和EILSEQ
宏定义 所需要的头文件
errno <cerrno>
这个宏定义可扩展为一个可修改的整型左值(lvalue of type int);所以,它能被程序读取和修改;errno在程序启动时被设置为0,并且任何C标准库中的函数能够修改成非0的其他值,一般用于标记特定类别的错误(一般库函数一旦设置完后就不会再次修改了)一个程序同样可以修改这个值,如果这个变量是用于在库函数调用后的错误检查,那它应该在被调用前被程序预设置(因为任何对库函数的提前调用都会改变这个值)在声明了errno 的相同头文件内至少声明了如下非0值的宏变量
| 宏名称 | 当errno 值被设置为此值时意味着什么 |
| EDOM | 域(Domain)错误:一些数学函数只为某些实际价值( certain real values )而定义,这就称之为域。举个例子,求平方根的函数的域为非负数,所以当 sqrt 传入了一个负数作为参数被调用则 sqrt 函数就会设置errno为EDOM; |
| ERANGE | 范围错误:能够表示一个范围变量的值是有限的。举个例子,数学函数中的 pow 可以轻易的被浮点型的数据给计算的超出范围,或者函数 strtod 会遭遇一串数的位数超出了这个值能够表达的范围。在这些情况下,errno会设置为ERANGE; |
| EILSEQ | 非法序列:多字节的字符序列可能有有限个有效的序列。当一个多字节的集合被例如 mbrtowc 函数转换的时,errno会在遇到无效序列时设置为EILSEQ; |
这些标准库中的函数可能设置errno为任何值(并不止上面列出的简少几个值),特定的函数可能会在这个头文件中定义额外的名字;c++ 11扩展中定义的基本值的集合(basic set of values)需要在这个头文件中被声明,其中包括许多在POSIX环境中也可使用的名称,errno值的总数增加到了78个,而且这个数字在不断增长中。要查看完整的列表,请参阅 errc 。这些特殊的错误信息与 errno 值之间的关系可以使用 strerror 函数获得 或者 直接使用 perror 函数打印输出;在C++中errno 通常被声明为一个宏,但是在C中则可能作为一个int对象实现与外部链接;
这个库支持多线程,每一个线程都拥有自己区域的errno值,这是一个在C11和C++11的库兼容方面的需求。
<cerrno>的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- [LuoguP3195] [HNOI2008]玩具装箱TOY
[HNOI2008]玩具装箱(Link) 题目描述 \(P\)教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊 ...
- stylus(css预编译器)
推荐去张鑫旭大神这里详细了解:http://www.zhangxinxu.com/jq/stylus/ 安装 npm install -g stylus 自动编译 $ stylus -w demo.s ...
- python 基于udp 连接
#udp 服务端 #导入socket模块 from socket import * #ip加端口 类型为元组 ip_port=('127.0.0.1',8002) #最大接收字节 buffer_siz ...
- Knowledge Point 20180308 拔下forEach的外衣
剖析加强for 很长一段时间对于foreach都有一种误解,那就是foreach只是普通for的包装,底层还是普通for循环,直到深入了解迭代器的时候,才发现自己错了,本节就来探讨一下foreach, ...
- OC - KVO实现原理
1.KVO简介 KVO是Objective-C对观察者设计模式的一种实现,它提供一种机制,指定一个被观察对象(如A类),当对象中的某个属性发生变化的时候,对象就会接收到通知,并作出相应的处理.在MVC ...
- Zabbix——设置阈值和报警
前提条件: Zabbix 服务器可以正常监控其他设备 Zbbix 已经配置完成了邮件报警 Zabbix server版本为4.0 配置ICMP监测,1分钟如果ping不通,将会发送邮件 找到Templ ...
- MySQL 开启事件 使用定时器调用存储过程
mysql定时器是系统给提供了event,而oracle里面的定时器是系统给提供的job.废话少说,下面创建表:create table mytable (id int auto_incremen ...
- Linux sed命令用法
概述 sed命令是一个面向字符流的非交互式编辑器,不允许用户与它进行交互操作.sed是以行为单位处理文本内容的.在shell中,可以批量修改文本内容. 用法 sed [选项] [动作] 选项与参数:- ...
- nuxt 优化项:禁用js的预加载
这里有个nuxt和vue不同的地方,这个地方很有意思,官方的中文文档说得蜜汁自信 ------------------------------- In production, nuxt.js uses ...
- PHP文档生成器(PHPDoc)的基本用法
目录 PHP文档生成器(PHPDoc)的基本用法 PHPDoc概述 安装 PHPDoc注释规范 页面级别的注释 代码级别的注释 生成API文档 额外软件 PHP文档生成器(PHPDoc)的基本用法 P ...