zoukankan      html  css  js  c++  java
  • linux 下各errno的意义

    strerror(errno):获取errno对应的错误

    #include <string.h> /* for strerror */
    #include <errno.h>
    #include <stdio.h>
    
    int main(int argc, char ** argv)        {
            int i = 0;
            for(i = 0; i < 256; i++)
            printf("errno.%02d is: %s/n", i, strerror(i));
            return 0;
    }

    错误对照表:

    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

    具体宏定义如下:

    头文件 /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
  • 相关阅读:
    980不同路径III
    输入函数
    IDEA更新maven依赖包
    join()函数
    方差偏差困境
    np.bincount()函数
    72编辑距离
    741摘樱桃
    523连续的子数组和
    1306跳跃游戏III
  • 原文地址:https://www.cnblogs.com/wiessharling/p/4075411.html
Copyright © 2011-2022 走看看