Linux下errno.h文件错误号说明_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
12
每页帖数
101/2页12
返回列表
0
发起投票  发起投票 发新帖子
查看: 5244 | 回复: 11   主题:  Linux下errno.h文件错误号说明        上一篇   下一篇 
sysbobo
注册用户
等级:新兵
经验:46
发帖:66
精华:0
注册:2012-2-21
状态:离线
发送短消息息给sysbobo 加好友    发送短消息息给sysbobo 发消息
发表于: IP:您无权察看 2016-3-28 9:56:54 | [全部帖] [楼主帖] 楼主

在centos6.2中,分为两个文件,一个在/usr/include/asm-generic/errno-base.h,, 另外一个在/usr/include/asm-generic/errno.h中

/usr/include/asm-generic/errno-base.h 文件内容如下:

<span style="font-size:12px;">#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 */</span>


/usr/include/asm-generic/errno.h文件内容如下

<span style="font-size:12px;">#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 NFS 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 */ 
#endif</span>



--转自



赞(0)    操作        顶端 
k3neeb
注册用户
等级:上尉
经验:799
发帖:15
精华:0
注册:2015-5-28
状态:离线
发送短消息息给k3neeb 加好友    发送短消息息给k3neeb 发消息
发表于: IP:您无权察看 2016-3-28 16:48:04 | [全部帖] [楼主帖] 2  楼

errno.h 是C语言C标准函式库里的标头档,定义了通过错误码来回报错误信息的宏。

errno本身是一个整型的全局变量,当使用errno的库函数,在执行出错时,只通过函数返回值返回一个表示出错的标识,如-1或NULL等,具体的出错原因会被赋值到errno中。通过查询errno可以确定具体的出错原因。

在errno.h中定义了一系列常见的宏,其形式为
#define EPERM 1 /* Operation not permitted */
可以划分为
1 定义一个宏名,以E开头;
2 定义其值,为一个正整数;
3 一个注释区域,说明该错误号出现时的具体错误内容。

errno.h中的条目因不同编译器的实现而有所区别,一般在100~128条范围内,具体内容可以在编译器的系统标准头文件夹下查看对应文件。



赞(0)    操作        顶端 
beefly
注册用户
等级:上尉
经验:758
发帖:1
精华:0
注册:2015-7-27
状态:离线
发送短消息息给beefly 加好友    发送短消息息给beefly 发消息
发表于: IP:您无权察看 2016-3-28 18:29:48 | [全部帖] [楼主帖] 3  楼

学习一下



赞(0)    操作        顶端 
ginger
注册用户
等级:中士
经验:209
发帖:0
精华:0
注册:2016-2-26
状态:离线
发送短消息息给ginger 加好友    发送短消息息给ginger 发消息
发表于: IP:您无权察看 2016-3-28 18:47:48 | [全部帖] [楼主帖] 4  楼

不错不错,感谢楼主分享!



赞(0)    操作        顶端 
duff
注册用户
等级:少校
经验:968
发帖:0
精华:0
注册:2015-7-22
状态:离线
发送短消息息给duff 加好友    发送短消息息给duff 发消息
发表于: IP:您无权察看 2016-3-28 20:56:19 | [全部帖] [楼主帖] 5  楼



赞(0)    操作        顶端 
山友木樨
注册用户
等级:少校
经验:1040
发帖:9
精华:0
注册:2015-6-1
状态:离线
发送短消息息给山友木樨 加好友    发送短消息息给山友木樨 发消息
发表于: IP:您无权察看 2016-3-29 8:20:41 | [全部帖] [楼主帖] 6  楼

多谢分享



赞(0)    操作        顶端 
k3neeb
注册用户
等级:上尉
经验:799
发帖:15
精华:0
注册:2015-5-28
状态:离线
发送短消息息给k3neeb 加好友    发送短消息息给k3neeb 发消息
发表于: IP:您无权察看 2016-3-29 14:21:34 | [全部帖] [楼主帖] 7  楼



赞(0)    操作        顶端 
twany
注册用户
等级:少校
经验:1408
发帖:17
精华:0
注册:2015-6-2
状态:离线
发送短消息息给twany 加好友    发送短消息息给twany 发消息
发表于: IP:您无权察看 2016-3-30 11:08:42 | [全部帖] [楼主帖] 8  楼

通过查询errno可以确定具体的出错原因。



赞(0)    操作        顶端 
k3neeb
注册用户
等级:上尉
经验:799
发帖:15
精华:0
注册:2015-5-28
状态:离线
发送短消息息给k3neeb 加好友    发送短消息息给k3neeb 发消息
发表于: IP:您无权察看 2016-3-30 17:56:27 | [全部帖] [楼主帖] 9  楼

顶顶顶



赞(0)    操作        顶端 
jinggege
注册用户
等级:中士
经验:241
发帖:0
精华:0
注册:2016-2-26
状态:离线
发送短消息息给jinggege 加好友    发送短消息息给jinggege 发消息
发表于: IP:您无权察看 2016-3-31 20:54:04 | [全部帖] [楼主帖] 10  楼

学习了



赞(0)    操作        顶端 
总帖数
12
每页帖数
101/2页12
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论