首页 技术 正文
技术 2022年11月21日
0 收藏 763 点赞 3,862 浏览 9628 个字

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

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

错误对照表:

errno0 :     Successerrno1 :     Operation not permittederrno2 :     No such file or directoryerrno3 :     No such processerrno4 :     Interrupted system callerrno5 :     Input/output errorerrno6 :     No such device or addresserrno7 :     Argument list too longerrno8 :     Exec format errorerrno9 :     Bad file descriptorerrno10 :    No child processeserrno11 :    Resource temporarily unavailableerrno12 :    Cannot allocate memoryerrno13 :    Permission deniederrno14 :    Bad addresserrno15 :    Block device requirederrno16 :    Device or resource busyerrno17 :    File existserrno18 :    Invalid cross-device linkerrno19 :    No such deviceerrno20 :    Not a directoryerrno21 :    Is a directoryerrno22 :    Invalid argumenterrno23 :    Too many open files in systemerrno24 :    Too many open fileserrno25 :    Inappropriate ioctl for deviceerrno26 :    Text file busyerrno27 :    File too largeerrno28 :    No space left on deviceerrno29 :    Illegal seekerrno30 :    Read-only file systemerrno31 :    Too many linkserrno32 :    Broken pipeerrno33 :    Numerical argument out of domainerrno34 :    Numerical result out of rangeerrno35 :    Resource deadlock avoidederrno36 :    File name too longerrno37 :    No locks availableerrno38 :    Function not implementederrno39 :    Directory not emptyerrno40 :    Too many levels of symbolic linkserrno41 :    Unknown error errno42 :    No message of desired typeerrno43 :    Identifier removederrno44 :    Channel number out of rangeerrno45 :    Level  not synchronizederrno46 :    Level  haltederrno47 :    Level  reseterrno48 :    Link number out of rangeerrno49 :    Protocol driver not attachederrno50 :    No CSI structure availableerrno51 :    Level  haltederrno52 :    Invalid exchangeerrno53 :    Invalid request descriptorerrno54 :    Exchange fullerrno55 :    No anodeerrno56 :    Invalid request codeerrno57 :    Invalid sloterrno58 :    Unknown error errno59 :    Bad font file formaterrno60 :    Device not a streamerrno61 :    No data availableerrno62 :    Timer expirederrno63 :    Out of streams resourceserrno64 :    Machine is not on the networkerrno65 :    Package not installederrno66 :    Object is remoteerrno67 :    Link has been severederrno68 :    Advertise errorerrno69 :    Srmount errorerrno70 :    Communication error on senderrno71 :    Protocol errorerrno72 :    Multihop attemptederrno73 :    RFS specific errorerrno74 :    Bad messageerrno75 :    Value too large for defined datatypeerrno76 :    Name not unique on networkerrno77 :    File descriptor in bad stateerrno78 :    Remote address changederrno79 :    Can not access a needed sharedlibraryerrno80 :    Accessing a corrupted sharedlibraryerrno81 :    .lib section in a.out corruptederrno82 :    Attempting to link in too manyshared librarieserrno83 :    Cannot exec a shared librarydirectlyerrno84 :    Invalid or incomplete multibyte orwide charactererrno85 :    Interrupted system call should berestartederrno86 :    Streams pipe errorerrno87 :    Too many userserrno88 :    Socket operation on non-socketerrno89 :    Destinationaddress requirederrno90 :    Message too longerrno91 :    Protocol wrong type for socketerrno92 :    Protocol not availableerrno93 :    Protocol not supportederrno94 :    Socket type not supportederrno95 :    Operation not supportederrno96 :    Protocol family not supportederrno97 :    Address family not supported byprotocolerrno98 :    Address already in useerrno99 :    Cannot assign requested addresserrno100 :   Network is downerrno101 :   Network is unreachableerrno102 :   Network dropped connection onreseterrno103 :   Software caused connection aborterrno104 :   Connection reset by peererrno105 :   No buffer space availableerrno106 :   Transport endpoint is alreadyconnectederrno107 :   Transport endpoint is notconnectederrno108 :   Cannot send after transportendpoint shutdownerrno109 :   Too many references: cannot spliceerrno110 :   Connection timed outerrno111 :   Connection refusederrno112 :   Host is downerrno113 :   No route to hosterrno114 :   Operation already in progresserrno115 :   Operation now in progresserrno116 :   Stale NFS file handleerrno117 :   Structure needs cleaningerrno118 :   Not a XENIX named type fileerrno119 :   No XENIX semaphores availableerrno120 :   Is a named type fileerrno121 :   Remote I/O errorerrno122 :   Disk quota exceedederrno123 :   No medium founderrno124 :   Wrong medium typeerrno125 :   Operation cancelederrno126 :   Required key not availableerrno127 :   Key has expirederrno128 :   Key has been revokederrno129 :   Key was rejected by serviceerrno130 :   Owner diederrno131 :   State not recoverableerrno132 :   Operation not possible due toRF-killerrno133 :   Unknown error errno134 :   Unknown error errno135 :   Unknown error errno136 :   Unknown error errno137 :   Unknown error errno138 :   Unknown error errno139 :   Unknown error 

具体宏定义如下:

头文件 /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
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,031
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,520
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,368
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,148
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,781
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,860