linux错误码5 io error,IO出错常用错误代码
在Linux文件操作以及更底层的IO操作出错的情况下,经常会为该如何返回合适的错误代码而纠结。另外在阅读代码的时候,可能会碰到很多种错误代码,因为不明白它的含义而迷惑。为此,有必要归纳整理一下常见的所有的出错代码及其对应的含义,既方便阅读代码时参考,又便于自己正确选用。
显然因为这些代码大都处在用户态,可能会有多个进程或者线程会用到它,因此通常把它们归纳一起放在同一个头文件里。在笔者的Linux中系统中,目前用到的宏的定义在下面的头文件里:
/usr/include/asm-generic/errno-base.h:
#ifndef
_ASM_GENERIC_ERRNO_BASE_H
#define
_ASM_GENERIC_ERRNO_BASE_H
#define
EPERM 1 /* Operation not permitted */
#define
ENOENT 2 /* No such file or directory */
#define
ESRCH 3 /* No such process */
#define
EINTR 4 /* Interrupted system call */
#define
EIO 5 /* I/O error */
#define
ENXIO 6 /* No such device or address */
#define
E2BIG 7 /* Argument list too long */
#define
ENOEXEC 8 /* Exec format error */
#define
EBADF 9 /* Bad file number */
#define
ECHILD 10 /* No child processes */
#define
EAGAIN 11 /* Try again */
#define
ENOMEM 12 /* Out of memory */
#define
EACCES 13 /* Permission denied */
#define
EFAULT 14 /* Bad address */
#define
ENOTBLK 15 /* Block device required */
#define
EBUSY 16 /* Device or resource busy */
#define
EEXIST 17 /* File exists */
#define
EXDEV 18 /* Cross-device link */
#define
ENODEV 19 /* No such device */
#define
ENOTDIR 20 /* Not a directory */
#define
EISDIR 21 /* Is a directory */
#define
EINVAL 22 /* Invalid argument */
#define
ENFILE 23 /* File table overflow */
#define
EMFILE 24 /* Too many open files */
#define
ENOTTY 25 /* Not a typewriter */
#define
ETXTBSY 26 /* Text file busy */
#define
EFBIG 27 /* File too large */
#define
ENOSPC 28 /* No space left on device */
#define
ESPIPE 29 /* Illegal seek */
#define
EROFS 30 /* Read-only file system */
#define
EMLINK 31 /* Too many links */
#define
EPIPE 32 /* Broken pipe */
#define
EDOM 33 /* Math argument out of domain of func */
#define
ERANGE 34 /* Math result not representable */
此外,/usr/include/asm-generic/errno.h还有一部分常用到的出错代码在这里定义,可以看到它和上面定义的错误代码的代码是统一编号的。
#ifndef
_ASM_GENERIC_ERRNO_H
#define
_ASM_GENERIC_ERRNO_H
#include
#define
EDEADLK 35 /* Resource deadlock would occur */
#define
ENAMETOOLONG 36 /* File name too long */
#define
ENOLCK 37 /* No record locks available */
#define
ENOSYS 38 /* Function not implemented */
#define
ENOTEMPTY 39 /* Directory not empty */
#define
ELOOP 40 /* Too many symbolic links encountered */
#define
EWOULDBLOCK EAGAIN /* Operation would block */
#define
ENOMSG 42 /* No message of desired type */
#define
EIDRM 43 /* Identifier removed */
#define
ECHRNG 44 /* Channel number out of range */
#define
EL2NSYNC 45 /* Level 2 not synchronized */
#define
EL3HLT 46 /* Level 3 halted */
#define
EL3RST 47 /* Level 3 reset */
#define
ELNRNG 48 /* Link number out of range */
#define
EUNATCH 49 /* Protocol driver not attached */
#define
ENOCSI 50 /* No CSI structure available */
#define
EL2HLT 51 /* Level 2 halted */
#define
EBADE 52 /* Invalid exchange */
#define
EBADR 53 /* Invalid request descriptor */
#define
EXFULL 54 /* Exchange full */
#define
ENOANO 55 /* No anode */
#define
EBADRQC 56 /* Invalid request code */
#define
EBADSLT 57 /* Invalid slot */
#define
EDEADLOCK EDEADLK
#define
EBFONT 59 /* Bad font file format */
#define
ENOSTR 60 /* Device not a stream */
#define
ENODATA 61 /* No data available */
#define
ETIME 62 /* Timer expired */
#define
ENOSR 63 /* Out of streams resources */
#define
ENONET 64 /* Machine is not on the network */
#define
ENOPKG 65 /* Package not installed */
#define
EREMOTE 66 /* Object is remote */
#define
ENOLINK 67 /* Link has been severed */
#define
EADV 68 /* Advertise error */
#define
ESRMNT 69 /* Srmount error */
#define
ECOMM 70 /* Communication error on send */
#define
EPROTO 71 /* Protocol error */
#define
EMULTIHOP 72 /* Multihop attempted */
#define
EDOTDOT 73 /* RFS specific error */
#define
EBADMSG 74 /* Not a data message */
#define
EOVERFLOW 75 /* Value too large for defined data type */
#define
ENOTUNIQ 76 /* Name not unique on network */
#define
EBADFD 77 /* File descriptor in bad state */
#define
EREMCHG 78 /* Remote address changed */
#define
ELIBACC 79 /* Can not access a needed shared library */
#define
ELIBBAD 80 /* Accessing a corrupted shared library */
#define
ELIBSCN 81 /* .lib section in a.out corrupted */
#define
ELIBMAX 82 /* Attempting to link in too many shared libraries */
#define
ELIBEXEC 83 /* Cannot exec a shared library directly */
#define
EILSEQ 84 /* Illegal byte sequence */
#define
ERESTART 85 /* Interrupted system call should be restarted */
#define
ESTRPIPE 86 /* Streams pipe error */
#define
EUSERS 87 /* Too many users */
#define
ENOTSOCK 88 /* Socket operation on non-socket */
#define
EDESTADDRREQ 89 /* Destination address required */
#define
EMSGSIZE 90 /* Message too long */
#define
EPROTOTYPE 91 /* Protocol wrong type for socket */
#define
ENOPROTOOPT 92 /* Protocol not available */
#define
EPROTONOSUPPORT 93 /* Protocol not supported */
#define
ESOCKTNOSUPPORT 94 /* Socket type not supported */
#define
EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
#define
EPFNOSUPPORT 96 /* Protocol family not supported */
#define
EAFNOSUPPORT 97 /* Address family not supported by protocol */
#define
EADDRINUSE 98 /* Address already in use */
#define
EADDRNOTAVAIL 99 /* Cannot assign requested address */
#define
ENETDOWN 100 /* Network is down */
#define
ENETUNREACH 101 /* Network is unreachable */
#define
ENETRESET 102 /* Network dropped connection because of reset */
#define
ECONNABORTED 103 /* Software caused connection abort */
#define
ECONNRESET 104 /* Connection reset by peer */
#define
ENOBUFS 105 /* No buffer space available */
#define
EISCONN 106 /* Transport endpoint is already connected */
#define
ENOTCONN 107 /* Transport endpoint is not connected */
#define
ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */
#define
ETOOMANYREFS 109 /* Too many references: cannot splice */
#define
ETIMEDOUT 110 /* Connection timed out */
#define
ECONNREFUSED 111 /* Connection refused */
#define
EHOSTDOWN 112 /* Host is down */
#define
EHOSTUNREACH 113 /* No route to host */
#define
EALREADY 114 /* Operation already in progress */
#define
EINPROGRESS 115 /* Operation now in progress */
#define
ESTALE 116 /* Stale file handle */
#define
EUCLEAN 117 /* Structure needs cleaning */
#define
ENOTNAM 118 /* Not a XENIX named type file */
#define
ENAVAIL 119 /* No XENIX semaphores available */
#define
EISNAM 120 /* Is a named type file */
#define
EREMOTEIO 121 /* Remote I/O error */
#define
EDQUOT 122 /* Quota exceeded */
#define
ENOMEDIUM 123 /* No medium found */
#define
EMEDIUMTYPE 124 /* Wrong medium type */
#define
ECANCELED 125 /* Operation Canceled */
#define
ENOKEY 126 /* Required key not available */
#define
EKEYEXPIRED 127 /* Key has expired */
#define
EKEYREVOKED 128 /* Key has been revoked */
#define
EKEYREJECTED 129 /* Key was rejected by service */
/*
for robust mutexes */
#define
EOWNERDEAD 130 /* Owner died */
#define
ENOTRECOVERABLE 131 /* State not recoverable */
#define
ERFKILL 132 /* Operation not possible due to RF-kill */
#define
EHWPOISON 133 /* Memory page has hardware error */
通过上面列举出来的所有文件和IO操作相关的错误代码可以看到,种类很多,数量不小,在我们实际的工程项目中,必须结合具体业务场景选则合适的错误代码,既要保证代码的含义和真是场景吻合,又要避免在不同的场景中使用了相同的错误代码。
linux错误码5 io error,IO出错常用错误代码相关推荐
- 微信小程序服务器错误错误码404,微信小程序 云开发 错误代码 大全
微信小程序 云开发 错误代码 大全 发布时间:2019-11-12编辑:三思 转载 阅读(1542) 以下记录的是微信小程序 云开发常出现的错误. 错误码 含义 -1通用错 ...
- linux错误码分析
22:参数错误,比如ip地址不合法,没有目标端口等 101:网络不可达,比如不能ping通 111:链接被拒绝,比如目标关闭链接等 115:当链接设置为非阻塞时,目标没有及时应答,返回此错误,sock ...
- linux错误码中文解释,Linux命令之perror - 解释错误代码
用途说明: perror命令是MySQL数据库系统中的一个工具程序,它用于打印C语言中errno错误代码的含义.也可以打印MySQL中存储引擎错误代码的含义.(perror prints a desc ...
- linux错误码61,Linux编程中的错误码列表
有时可以知道错误的数值,但是如果不知道对应于那个宏定义,也很难知道这个错误描述的是什么.我平时这两种方法来确定:在内核源码中搜索和查看头文件. 在内核源码中搜索一般都可以搜到,而且使用source i ...
- mysql错误码2002_MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket
在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can't connect to local MySQL se ...
- Mysql安装错误码1722_软件error 1771, error1722,error 1723解决办法
windows系统错误信息,error 1771, error1722, error1723的解决方案. 可能很多windows7 用户遇到过类似问题,在安装软件过程中或者其他操作过程中会出现如下错误 ...
- linux 错误码256,Linux 错误码对照表
errno 在 中定义,错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的 errno-base.h 和 errno.h,分别定义了 1-34 .35-132 ...
- 微信支付curl出错及错误码解决方案
关键字:微信支付 curl出错 错误码6 错误码7 错误码28 错误码52 错误码58 错误码60 错误码77 作者:方倍工作室 原文: http://www.cnblogs.com/txw1958 ...
- MySQL常见错误码
2019独角兽企业重金招聘Python工程师标准>>> 自建MySQL环境主机 主机:iZbp1e*****krn92qrx0Z 内网ip: 10.26.254.217 客户端ecs ...
最新文章
- Http压测工具wrk使用指南【转】
- 安卓界面之Viewpager和Tablayout实现滑动界面
- python邮件正文表格怎么编辑_python怎么把excel写到邮件里
- sklearn机器学习实例
- design php 如何使用ant_Ant Design Pro如何调用接口 | Ant Design Pro渲染数据 绑定数据...
- Java多线程编程实战(读书笔记)
- layui table 表格两种赋值方式下,data分页效果有效, url分页效果的失效 问题的解决。
- 云擎供应链:为中小仓库提供SaaS供应链解决方案
- LINUX虚拟机与WINDOWS主机,直接复制交换文件会有问题
- hadoop-06-http服务
- 中国的码农们,沉睡了20年,该醒醒了
- jsonp的原理与实现
- Word的样式库在 选项卡中_word排版应用:如何创建文本样式和表格样式
- 图像修复神器!带上口罩都能还原!DDPM:用去噪扩散概率模型极限修复图像,效果太牛了!...
- 手机内存卡丢失数据怎么恢复
- 如何禁用笔记本触摸板
- python文件下载战_在您的Python平台游戏中放一些战利品
- Pytorch----卷积神经网络(CNN,图像边缘检测 , Sobel滤波器 , Scharr滤波器)--入门级小实例(逐行注释)---学习笔记
- python打印自动换行如何解决,python不换行打印的方法
- 一些实用的零零散散的知识
热门文章
- 如何解iOS系统中系统库的dyld缓存
- 破解芝诺悖论之阿基里斯追乌龟
- python argsort函数_Python numpy.argsort函数方法的使用
- 【校园商铺 4章】:店铺注册--Service层的实现(后期还要改造,先前没实现)
- 第七章 	弗洛格老师
- python入门的兴趣学习
- bugku:misc可爱的故事
- maya mel uf8_新手入门Maya mel要注意的 8个细节
- 基于IoT全链路实时质量 - 魔洛哥
- sketchup边线设置_SketchUp中隐藏后边线的操作教程