zoukankan      html  css  js  c++  java
  • Linux errno错误码

    Linux中系统调用的错误都存储于 errno中,errno由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误。

    错误码描述如下  0 表示成功

     

    errno:  0       Success

    errno:  1       Operation not permitted

    errno:  2       No such file or directory

    errno:  3       No such process

    errno:  4       Interrupted system call

    errno:  5       Input/output error

    errno:  6       No such device or address

    errno:  7       Argument list too long

    errno:  8       Exec format error

    errno:  9       Bad file descriptor

    errno: 10       No child processes

    errno: 11       Resource temporarily unavailable

    errno: 12       Cannot allocate memory

    errno: 13       Permission denied

    errno: 14       Bad address

    errno: 15       Block device required

    errno: 16       Device or resource busy

    errno: 17       File exists

    errno: 18       Invalid cross-device link

    errno: 19       No such device

    errno: 20       Not a directory

    errno: 21       Is a directory

    errno: 22       Invalid argument

    errno: 23       Too many open files in system

    errno: 24       Too many open files

    errno: 25       Inappropriate ioctl for device

    errno: 26       Text file busy

    errno: 27       File too large

    errno: 28       No space left on device

    errno: 29       Illegal seek

    errno: 30       Read-only file system

    errno: 31       Too many links

    errno: 32       Broken pipe

    errno: 33       Numerical argument out of domain

    errno: 34       Numerical result out of range

    errno: 35       Resource deadlock avoided

    errno: 36       File name too long

    errno: 37       No locks available

    errno: 38       Function not implemented

    errno: 39       Directory not empty

    errno: 40       Too many levels of symbolic links

    errno: 41       Unknown error 41

    errno: 42       No message of desired type

    errno: 43       Identifier removed

    errno: 44       Channel number out of range

    errno: 45       Level 2 not synchronized

    errno: 46       Level 3 halted

    errno: 47       Level 3 reset

    errno: 48       Link number out of range

    errno: 49       Protocol driver not attached

    errno: 50       No CSI structure available

    errno: 51       Level 2 halted

    errno: 52       Invalid exchange

    errno: 53       Invalid request descriptor

    errno: 54       Exchange full

    errno: 55       No anode

    errno: 56       Invalid request code

    errno: 57       Invalid slot

    errno: 58       Unknown error 58

    errno: 59       Bad font file format

    errno: 60       Device not a stream

    errno: 61       No data available

    errno: 62       Timer expired

    errno: 63       Out of streams resources

    errno: 64       Machine is not on the network

    errno: 65       Package not installed

    errno: 66       Object is remote

    errno: 67       Link has been severed

    errno: 68       Advertise error

    errno: 69       Srmount error

    errno: 70       Communication error on send

    errno: 71       Protocol error

    errno: 72       Multihop attempted

    errno: 73       RFS specific error

    errno: 74       Bad message

    errno: 75       Value too large for defined data type

    errno: 76       Name not unique on network

    errno: 77       File descriptor in bad state

    errno: 78       Remote address changed

    errno: 79       Can not access a needed shared library

    errno: 80       Accessing a corrupted shared library

    errno: 81       .lib section in a.out corrupted

    errno: 82       Attempting to link in too many shared libraries

    errno: 83       Cannot exec a shared library directly

    errno: 84       Invalid or incomplete multibyte or wide character

    errno: 85       Interrupted system call should be restarted

    errno: 86       Streams pipe error

    errno: 87       Too many users

    errno: 88       Socket operation on non-socket

    errno: 89       Destination address required

    errno: 90       Message too long

    errno: 91       Protocol wrong type for socket

    errno: 92       Protocol not available

    errno: 93       Protocol not supported

    errno: 94       Socket type not supported

    errno: 95       Operation not supported

    errno: 96       Protocol family not supported

    errno: 97       Address family not supported by protocol

    errno: 98       Address already in use

    errno: 99       Cannot assign requested address

    errno: 100      Network is down

    errno: 101      Network is unreachable

    errno: 102      Network dropped connection on reset

    errno: 103      Software caused connection abort

    errno: 104      Connection reset by peer

    errno: 105      No buffer space available

    errno: 106      Transport endpoint is already connected

    errno: 107      Transport endpoint is not connected

    errno: 108      Cannot send after transport endpoint shutdown

    errno: 109      Too many references: cannot splice

    errno: 110      Connection timed out

    errno: 111      Connection refused

    errno: 112      Host is down

    errno: 113      No route to host

    errno: 114      Operation already in progress

    errno: 115      Operation now in progress

    errno: 116      Stale file handle

    errno: 117      Structure needs cleaning

    errno: 118      Not a XENIX named type file

    errno: 119      No XENIX semaphores available

    errno: 120      Is a named type file

    errno: 121      Remote I/O error

    errno: 122      Disk quota exceeded

    errno: 123      No medium found

    errno: 124      Wrong medium type

    errno: 125      Operation canceled

    errno: 126      Required key not available

    errno: 127      Key has expired

    errno: 128      Key has been revoked

    errno: 129      Key was rejected by service

    errno: 130      Owner died

    errno: 131      State not recoverable

    errno: 132      Operation not possible due to RF-kill

    errno: 133      Memory page has hardware error

    errno: 134~255  unknown error!

    Linux中,在头文件 /usr/include/asm-generic/errno-base.h 对基础常用errno进行了宏定义

    #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 */
    
    #endif
    

    在 /usr/include/asm-asm-generic/errno.h 中,对剩余的errno做了宏定义

    #ifndef _ASM_GENERIC_ERRNO_H
    #define _ASM_GENERIC_ERRNO_H
    
    #include <asm-generic/errno-base.h>
    
    #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 */
    
    #endif
  • 相关阅读:
    挑战程序设计竞赛 第2章习题 poj 1017 Packets 贪心模拟
    挑战程序设计竞赛 2章习题 poj 2376 Cleaning Shifts
    Leetcode 27. 移除元素 双指针
    Leetcode 26. 删除有序数组中的重复项 双指针
    Leetcode 31. 下一个排列
    webserver 发布问题
    [转]机器学习中的各种距离
    VUE3 + TYPESCRIPT 开发实践总结
    我和ABP vNext 的故事
    ABP Framework 为什么好上手,不好深入?探讨最佳学习姿势!
  • 原文地址:https://www.cnblogs.com/widget90/p/13255882.html
Copyright © 2011-2022 走看看