Linux errno错误对照表

errno 在 <errno.h> 中定义,错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的  errno-base.h 和 errno.h,分别定义了 1-34 、35-132 的错误定义。

strerror() 函数依据 errno 值返回错误描述字符串,下面程序打印对照表:

[cpp] view plain copy

  1. #include <errno.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. int main()
  5. {
  6. int i;
  7. for(i = 0; i < 140; ++i)
  8. {
  9. errno = i;
  10. printf("errno %d :\t\t%s\n",i,strerror(errno));
  11. }
  12. return 0;
  13. }

错误对照表:

errno0 :     Success

errno1 :     Operation not permitted

errno2 :     No such file or directory

errno3 :     No such process

errno4 :     Interrupted system call

errno5 :     Input/output error

errno6 :     No such device or address

errno7 :     Argument list too long

errno8 :     Exec format error

errno9 :     Bad file descriptor

errno10 :    No child processes

errno11 :    Resource temporarily unavailable

errno12 :    Cannot allocate memory

errno13 :    Permission denied

errno14 :    Bad address

errno15 :    Block device required

errno16 :    Device or resource busy

errno17 :    File exists

errno18 :    Invalid cross-device link

errno19 :    No such device

errno20 :    Not a directory

errno21 :    Is a directory

errno22 :    Invalid argument

errno23 :    Too many open files in system

errno24 :    Too many open files

errno25 :    Inappropriate ioctl for device

errno26 :    Text file busy

errno27 :    File too large

errno28 :    No space left on device

errno29 :    Illegal seek

errno30 :    Read-only file system

errno31 :    Too many links

errno32 :    Broken pipe

errno33 :    Numerical argument out of domain

errno34 :    Numerical result out of range

errno35 :    Resource deadlock avoided

errno36 :    File name too long

errno37 :    No locks available

errno38 :    Function not implemented

errno39 :    Directory not empty

errno40 :    Too many levels of symbolic links

errno41 :    Unknown error 41

errno42 :    No message of desired type

errno43 :    Identifier removed

errno44 :    Channel number out of range

errno45 :    Level 2 not synchronized

errno46 :    Level 3 halted

errno47 :    Level 3 reset

errno48 :    Link number out of range

errno49 :    Protocol driver not attached

errno50 :    No CSI structure available

errno51 :    Level 2 halted

errno52 :    Invalid exchange

errno53 :    Invalid request descriptor

errno54 :    Exchange full

errno55 :    No anode

errno56 :    Invalid request code

errno57 :    Invalid slot

errno58 :    Unknown error 58

errno59 :    Bad font file format

errno60 :    Device not a stream

errno61 :    No data available

errno62 :    Timer expired

errno63 :    Out of streams resources

errno64 :    Machine is not on the network

errno65 :    Package not installed

errno66 :    Object is remote

errno67 :    Link has been severed

errno68 :    Advertise error

errno69 :    Srmount error

errno70 :    Communication error on send

errno71 :    Protocol error

errno72 :    Multihop attempted

errno73 :    RFS specific error

errno74 :    Bad message

errno75 :    Value too large for defined datatype

errno76 :    Name not unique on network

errno77 :    File descriptor in bad state

errno78 :    Remote address changed

errno79 :    Can not access a needed sharedlibrary

errno80 :    Accessing a corrupted sharedlibrary

errno81 :    .lib section in a.out corrupted

errno82 :    Attempting to link in too manyshared libraries

errno83 :    Cannot exec a shared librarydirectly

errno84 :    Invalid or incomplete multibyte orwide character

errno85 :    Interrupted system call should berestarted

errno86 :    Streams pipe error

errno87 :    Too many users

errno88 :    Socket operation on non-socket

errno89 :    Destinationaddress required

errno90 :    Message too long

errno91 :    Protocol wrong type for socket

errno92 :    Protocol not available

errno93 :    Protocol not supported

errno94 :    Socket type not supported

errno95 :    Operation not supported

errno96 :    Protocol family not supported

errno97 :    Address family not supported byprotocol

errno98 :    Address already in use

errno99 :    Cannot assign requested address

errno100 :   Network is down

errno101 :   Network is unreachable

errno102 :   Network dropped connection onreset

errno103 :   Software caused connection abort

errno104 :   Connection reset by peer

errno105 :   No buffer space available

errno106 :   Transport endpoint is alreadyconnected

errno107 :   Transport endpoint is notconnected

errno108 :   Cannot send after transportendpoint shutdown

errno109 :   Too many references: cannot splice

errno110 :   Connection timed out

errno111 :   Connection refused

errno112 :   Host is down

errno113 :   No route to host

errno114 :   Operation already in progress

errno115 :   Operation now in progress

errno116 :   Stale NFS file handle

errno117 :   Structure needs cleaning

errno118 :   Not a XENIX named type file

errno119 :   No XENIX semaphores available

errno120 :   Is a named type file

errno121 :   Remote I/O error

errno122 :   Disk quota exceeded

errno123 :   No medium found

errno124 :   Wrong medium type

errno125 :   Operation canceled

errno126 :   Required key not available

errno127 :   Key has expired

errno128 :   Key has been revoked

errno129 :   Key was rejected by service

errno130 :   Owner died

errno131 :   State not recoverable

errno132 :   Operation not possible due toRF-kill

errno133 :   Unknown error 133

errno134 :   Unknown error 134

errno135 :   Unknown error 135

errno136 :   Unknown error 136

errno137 :   Unknown error 137

errno138 :   Unknown error 138

errno139 :   Unknown error 139

由上可见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 ENOENT2
/* 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 ENOEXEC8
/* Exec format error */
#define EBADF  9 /* Bad file number */
#define ECHILD10
/* No child processes */
#define EAGAIN11
/* Try again */
#define ENOMEM12
/* Out of memory */
#define EACCES13
/* Permission denied */
#define EFAULT14
/* Bad address */
#define ENOTBLK15
/* Block device required */
#define EBUSY  16 /* Device or resource busy */
#define EEXIST17
/* File exists */
#define EXDEV  18 /* Cross-device link */
#define ENODEV19
/* No such device */
#define ENOTDIR20
/* Not a directory */
#define EISDIR21
/* Is a directory */
#define EINVAL22
/* Invalid argument */
#define ENFILE23
/* File table overflow */
#define EMFILE24
/* Too many open files */
#define ENOTTY25
/* Not a typewriter */
#define ETXTBSY26
/* Text file busy */
#define EFBIG  27 /* File too large */
#define ENOSPC28
/* No space left on device */
#define ESPIPE29
/* Illegal seek */
#define EROFS  30 /* Read-only file system */
#define EMLINK31
/* Too many links */
#define EPIPE  32 /* Broken pipe */
#define EDOM  33 /* Math argument out of domain of func */
#define ERANGE34
/* Math result not representable */

#endif

头文件/usr/include/asm-generic/erno.h源码:

#ifndef _ASM_GENERIC_ERRNO_H
#define _ASM_GENERIC_ERRNO_H

#include <asm-generic/errno-base.h>

#define EDEADLK35
/* Resource deadlock would occur */
#define ENAMETOOLONG36
/* File name too long */
#define ENOLCK37
/* No record locks available */
#define ENOSYS38
/* Function not implemented */
#define ENOTEMPTY39
/* Directory not empty */
#define ELOOP  40 /* Too many symbolic links encountered */
#define EWOULDBLOCKEAGAIN
/* Operation would block */
#define ENOMSG42
/* No message of desired type */
#define EIDRM  43 /* Identifier removed */
#define ECHRNG44
/* Channel number out of range */
#define EL2NSYNC45
/* Level 2 not synchronized */
#define EL3HLT46
/* Level 3 halted */
#define EL3RST47
/* Level 3 reset */
#define ELNRNG48
/* Link number out of range */
#define EUNATCH49
/* Protocol driver not attached */
#define ENOCSI50
/* No CSI structure available */
#define EL2HLT51
/* Level 2 halted */
#define EBADE  52 /* Invalid exchange */
#define EBADR  53 /* Invalid request descriptor */
#define EXFULL54
/* Exchange full */
#define ENOANO55
/* No anode */
#define EBADRQC56
/* Invalid request code */
#define EBADSLT57
/* Invalid slot */

#define EDEADLOCKEDEADLK

#define EBFONT59
/* Bad font file format */
#define ENOSTR60
/* Device not a stream */
#define ENODATA61
/* No data available */
#define ETIME  62 /* Timer expired */
#define ENOSR  63 /* Out of streams resources */
#define ENONET64
/* Machine is not on the network */
#define ENOPKG65
/* Package not installed */
#define EREMOTE66
/* Object is remote */
#define ENOLINK67
/* Link has been severed */
#define EADV  68 /* Advertise error */
#define ESRMNT69
/* Srmount error */
#define ECOMM  70 /* Communication error on send */
#define EPROTO71
/* Protocol error */
#define EMULTIHOP72
/* Multihop attempted */
#define EDOTDOT73
/* RFS specific error */
#define EBADMSG74
/* Not a data message */
#define EOVERFLOW75
/* Value too large for defined data type */
#define ENOTUNIQ76
/* Name not unique on network */
#define EBADFD77
/* File descriptor in bad state */
#define EREMCHG78
/* Remote address changed */
#define ELIBACC79
/* Can not access a needed shared library */
#define ELIBBAD80
/* Accessing a corrupted shared library */
#define ELIBSCN81
/* .lib section in a.out corrupted */
#define ELIBMAX82
/* Attempting to link in too many shared libraries */
#define ELIBEXEC83
/* Cannot exec a shared library directly */
#define EILSEQ84
/* Illegal byte sequence */
#define ERESTART85
/* Interrupted system call should be restarted */
#define ESTRPIPE86
/* Streams pipe error */
#define EUSERS87
/* Too many users */
#define ENOTSOCK88
/* Socket operation on non-socket */
#define EDESTADDRREQ89
/* Destination address required */
#define EMSGSIZE90
/* Message too long */
#define EPROTOTYPE91
/* Protocol wrong type for socket */
#define ENOPROTOOPT92
/* Protocol not available */
#define EPROTONOSUPPORT93
/* Protocol not supported */
#define ESOCKTNOSUPPORT94
/* Socket type not supported */
#define EOPNOTSUPP95
/* Operation not supported on transport endpoint */
#define EPFNOSUPPORT96
/* Protocol family not supported */
#define EAFNOSUPPORT97
/* Address family not supported by protocol */
#define EADDRINUSE98
/* Address already in use */
#define EADDRNOTAVAIL99
/* Cannot assign requested address */
#define ENETDOWN100
/* Network is down */
#define ENETUNREACH101
/* Network is unreachable */
#define ENETRESET102
/* Network dropped connection because of reset */
#define ECONNABORTED103
/* Software caused connection abort */
#define ECONNRESET104
/* Connection reset by peer */
#define ENOBUFS105
/* No buffer space available */
#define EISCONN106
/* Transport endpoint is already connected */
#define ENOTCONN107
/* Transport endpoint is not connected */
#define ESHUTDOWN108
/* Cannot send after transport endpoint shutdown */
#define ETOOMANYREFS109
/* Too many references: cannot splice */
#define ETIMEDOUT110
/* Connection timed out */
#define ECONNREFUSED111
/* Connection refused */
#define EHOSTDOWN112
/* Host is down */
#define EHOSTUNREACH113
/* No route to host */
#define EALREADY114
/* Operation already in progress */
#define EINPROGRESS115
/* Operation now in progress */
#define ESTALE116
/* Stale NFS file handle */
#define EUCLEAN117
/* Structure needs cleaning */
#define ENOTNAM118
/* Not a XENIX named type file */
#define ENAVAIL119
/* No XENIX semaphores available */
#define EISNAM120
/* Is a named type file */
#define EREMOTEIO121
/* Remote I/O error */
#define EDQUOT122
/* Quota exceeded */

#define ENOMEDIUM123
/* No medium found */
#define EMEDIUMTYPE124
/* Wrong medium type */
#define ECANCELED125
/* Operation Canceled */
#define ENOKEY126
/* Required key not available */
#define EKEYEXPIRED127
/* Key has expired */
#define EKEYREVOKED128
/* Key has been revoked */
#define EKEYREJECTED129
/* Key was rejected by service */

/* for robust mutexes */
#define EOWNERDEAD130
/* Owner died */
#define ENOTRECOVERABLE131
/* State not recoverable */

#define ERFKILL 132/* Operation not possible due to RF-kill */

#endif

时间: 2024-10-06 01:10:01

Linux errno错误对照表的相关文章

errno错误号含义

errno0 : Success errno1 : Operation not permitted errno2 : No such file or directory errno3 : No such process errno4 : Interrupted system call errno5 : Input/output error errno6 : No such device or address errno7 : Argument list too long errno8 : Exe

Linux errno

Linux/include/uapi/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 */ #defi

linux 编译错误:undefined reference to `__gxx_personality_v0&#39;

(1)编译 c++ 程序需要添加 -lstdc++ 如: gcc -lstdc++ -o test test.c 否则会报 "undefinedreference to '__gxx_personality_v0' " 错误 (2)用gcc命令编译C程序,用g++命令编译C++程序. g++和gcc本质一样的,本质上还是gcc,我们实验室所有的c++程序都是用gcc编译的,一般的程序用gcc足够了. 对于 C++ 程序,编译的时候用 gcc 或者 g++ 都可以.但是在进行连接的时候最

linux重新启动错误 could not update ICEauthority file

linux重新启动错误 could not update ICEauthority file linux重新启动异常 could not update ICEauthority file linux启动时报Could not update ICEauthority file /var/lib/gdm/.ICEauthority 首先需要通过linux单用户模式登陆该系统 进入单用户模式: grub 进入启动画面之后,敲入"e",把光标移动到kernel ...那一行,再敲入"

Linux启动错误之MBR

启动linux操作系统时,有时会因为误操作而导致系统无法正常启动,而这些误操作很多都跟grub有关,这里我们就这种情况进行一下简单的模拟并解决无法正常启动的问题.首先我们先看一下linux的启动流程图: 模拟第一个阶段失效与修复我们利用一条命令来把MBR的前446字节覆盖的方法来模拟第一阶段 然后我们重启linux系统,此时只会这个界面,而进不去系统了 接下来我们就要想办法来使系统恢复正常了,首先我们要把光盘加入光驱,然后重新启动,以光盘进行引导.此时会出现这样的界面: 然后,我们要进入救援模式

linux &#39;--stdin&#39;错误 -批量修改密码

虚拟机:VMware虚拟机  系统:Linux ubuntu 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 看 <鸟哥的私房菜 -服务器架设篇>的时候,跟着书上敲指令的时候遇到了一个问题,批量添加用户和修改密码失败. shell命令如下: 使用 sh运行脚本的时候出现以下错误: 实测用户和用户组都已经添加成功,但是批量修改密码的时候出现错误,

Linux的错误码表(errno table)

_ 124 EMEDIUMTYPE_ Wrong medium type_ 123 ENOMEDIUM__ No medium found_ 122 EDQUOT___  Disk quota exceeded_ 121 EREMOTEIO__ Remote I/O error_ 120 EISNAM___  Is a named type file_ 119 ENAVAIL___ No XENIX semaphores available_ 118 ENOTNAM___ Not a XENIX

LINUX权限错误:-bash: ./startup.sh: Permission denied

LINUX权限-bash: ./startup.sh: Permission denied 执行./startup.sh,或者./shutdown.sh的时候,报:Permission denied,因为是执行tomcat时,用户无权限,导致出现以上错误.需要用命令:chmod 修改一下bin目录下的.sh权限. 具体操作如下:chmod u+x *.sh

linux 段错误常见处理方法

1.如果没有产生core文件,可以查询系统log 通过 sudo cat /var/log/messages |grep segfault 或者 sudo dmesg|grep segfault 获得这种信息一般都是由内存访问越界造成的,不管是用户态程序还是内核态程序访问越界都会出core, 并在系统日志里面输出一条这样的信息.这条信息的前面分别是访问越界的程序名,进程ID号,访问越界的地址以及当时进程堆栈地址等信息,比较有用的信息是 最后的error number. 在上面的信息中,error