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

【Linux系统编程】快速查找errno错误码信息

我们都知道,errno整型变量被普遍应用于*NIX C的异常处理中,其记录了最近一次的错误码。通过判断错误码的值,以此执行不同的错误处理,这是C语言典型的异常处理方式。其错误名称,比如EAGAINEWOULDBLOCK等,都通过宏定义,头文件是errno.h;错误码对应的描述,可以通过strerror输出。

如果我们想知道错误名称对应的错误码的值,只需要简单的print("%d",EAGAIN);就能知道;如果想知道错误码的描述,调用strerror即可。但毕竟要写程序,相对不方便,那有没有现成的工具帮我们做到这些呢?

Linux有一款errno命令行程序可以很方便的解决以上的问题,而且还能提供更丰富的功能。

安装

Debian可通过apt-get install moreutils安装,这个软件包里包含很多的命令程序,有时间可以挖掘一下。

功能说明

errno程序选项很少,通过man errno一屏就可展开。
图片描述

下面说主要功能:

  • 通过错误名称查错误码和错误描述
$ errno EWOULDBLOCK
EWOULDBLOCK 11 Resource temporarily unavailable
  • 通过错误码查错误名称和错误描述
$ errno 11
EAGAIN 11 Resource temporarily unavailable
  • 列举所有errno变量所有错误情况
    使用errno -lerrno -ls
  • 通过错误描述里的关键字(大小写不敏感)查对应的错误情况
$ errno -s support
EPROTONOSUPPORT 93 Protocol not supported
ESOCKTNOSUPPORT 94 Socket type not supported
EOPNOTSUPP 95 Operation not supported
EPFNOSUPPORT 96 Protocol family not supported
EAFNOSUPPORT 97 Address family not supported by protocol
ENOTSUP 95 Operation not supported

请关注我的公众号哦。
图片描述

相关文章:

  • 关于aspx.designer.cs的研究
  • 精彩代码 vue.js
  • 霍夫变换直线检测
  • Netflix 混沌工程手册 Part 3:实践方法
  • 又一款博客园Android客户端低调推出
  • 基于虹软 人脸识别的闸机开发经验及源码分享
  • python 安装第三方模块
  • ajax与json
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • RPC
  • UI2Code智能生成Flutter代码——版面分析篇
  • ios设备唯一标识获取策略
  • Windows下使用资源管理器管理FTP指南
  • 激活函数汇总
  • java压缩 GZIP进行简单压缩,ZIP进行多文件保存
  • 分享的文章《人生如棋》
  • 0基础学习移动端适配
  • cookie和session
  • ECMAScript入门(七)--Module语法
  • es6--symbol
  • idea + plantuml 画流程图
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 使用API自动生成工具优化前端工作流
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 原生js练习题---第五课
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 阿里云ACE认证学习知识点梳理
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)创业的注意事项
  • .axf 转化 .bin文件 的方法
  • .NET MVC第三章、三种传值方式
  • .net MySql
  • .net 反编译_.net反编译的相关问题
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @Pointcut 使用
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • []FET-430SIM508 研究日志 11.3.31
  • [20150321]索引空块的问题.txt
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [CF407E]k-d-sequence
  • [CTO札记]盛大文学公司名称对联
  • [FZSZOJ 1223] 上海红茶馆
  • [HAOI2016]食物链
  • [Java]深入剖析常见排序
  • [LeetCode周赛复盘] 第 310 场周赛20220911
  • [Linux基础开发工具---vim]关于vim的介绍、vim如何配置及vim的基本操作方法