我们都知道,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

请关注我的公众号哦。

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

  1. 基于Linux系统的快速查找方法

    1 引言 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统.由于其多用.多任务特性,被广泛应用于服务器开发和嵌入式开发.在系统运行过程中,会产生了大量的信息,不管是日志 ...

  2. linux系统编程快速定位头文件的技巧之强大的grep命令

    这个技巧来自于我的实际开发碰到的: inet_addr这个函数用于把ip地址转成网络字节序,他的原型:in_addr_t inet_addr(const char *cp); 返回值为一个in_add ...

  3. 【读书笔记】linux系统编程

    linux系统编程 原作名:Linux System Programming 作者: Robert Love 第一章 入门和基本概念 1.1 系统编程 应用程序需要与更高层次的库进行交互,系统程序就是 ...

  4. Linux系统编程总结

    day2 vim的三种工作模式 命令模式 vi hello.c zz 保存退出 2.编辑模式 i a o s (有大写)可以写东西 3.末行模式: 文本和末行模式不能直接切换 要切换回命令模式 再到末 ...

  5. linux线程并不真正并行,Linux系统编程学习札记(十二)线程1

    Linux系统编程学习笔记(十二)线程1 线程1: 线程和进程类似,但是线程之间能够共享更多的信息.一个进程中的所有线程可以共享进程文件描述符和内存. 有了多线程控制,我们可以把我们的程序设计成为在一 ...

  6. Linux系统编程 / triggerhappy 源码分析(3.select 的应用)

    哈喽,我是老吴,继续记录我的学习心得. 一.进步的滞后性 我们期望进步是线性: 每一个人付出一些努力后,都希望它有立竿见影的效果. 现实是: 做出努力后,结果的显现往往滞后. 只有在几个月或几年后,我 ...

  7. 《Linux系统编程(第2版)》——2.6 关闭文件

    本节书摘来自异步社区<Linux系统编程(第2版)>一书中的第2章,第2.6节,作者:[美]Robert Love著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  8. linux原子过程,linux系统编程:IO读写过程的原子性操作实验

    所谓原子性操作指的是:内核保证某系统调用中的所有步骤(操作)作为独立操作而一次性加以执行,其间不会被其他进程或线程所中断. 举个通俗点的例子:你和女朋友OOXX的时候,突然来了个电话,势必会打断你们高 ...

  9. Linux系统编程笔记

    文章目录 1.Linux系统编程 2.文件IO 2.1 文件描述符 2.2 open 2.3 perror 2.4 close 2.5 write 2.6 read 2.7 remove 2.8 系统 ...

最新文章

  1. python高阶函数(abs()、round()、map()、reduce()、filter())
  2. asp.net core 教程(七)-异常处理、静态文件
  3. 如何在Java中将String转换为int?
  4. ZOC7 for Mac连接CentOS7无法输入中文问题
  5. 野火开发版屏幕_盘一盘那些年我们常用的物联网开发板!
  6. Bootstrap 按钮组
  7. Python基础教程:生成器
  8. 如何在 Windows 上安装 Python | Linux 中国
  9. php的 datetime,PHP DateTime-修改参考
  10. 【面试题】序列化的 10 几个问题
  11. 优化算法(一)SGD算法实现
  12. android语音唤醒app,breeno助手语音唤醒
  13. 高频面试题—聊一下Euraka的注册原理
  14. java 加水印_Java添加水印(图片水印,文字水印)
  15. 输入框过滤表情和颜文字
  16. ospf多区域原理和配置
  17. epub格式电子书剖析
  18. 解决“连接U8数据库服务器失败”的方法尝试
  19. 截图转换为gif动图,gif动图制作
  20. [Python机器学习]Nagel-Schreckenberg(交通流)模型

热门文章

  1. oracle hyperion招聘,Hyperion Planning功能顾问
  2. leetcode算法题--Binary Tree Paths
  3. 电脑桌面路径多了个计算机名,文件太多,电脑桌面太乱?一个技巧帮你解决!...
  4. spark python 开发环境_Eclipse配置Spark Python开发环境
  5. 鸿蒙2.0操作体验,鸿蒙2.0操作系统正式版-华为鸿蒙2.0操作系统正式版官方预约 v1.0.0-优盘手机站...
  6. MySQL 8.0新特性--CTE Recurive(二)
  7. vim配置@year12
  8. Android 应用 之路 MPAndroidChart~ScatterChart
  9. System.arraycopy 和Arrays.copyOf
  10. 轻松创建Silverlight 4开发环境