描述:一般说的Linux源码的目录,默认是基于 /usr/include/ 的.

  使用

 char *strerror(int errnum);

  函数打印错误代码的描述.我简单对比了一下,发现描述大体一致,但有些地方, strerror 函数的描述还稍微详细点.

  在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较 麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了:

  实现代码:

 #include <string.h>    //for strerror(i)
#include <stdlib.h>
#include <stdio.h> int
main(void) {
int errno;
for(errno = ; errno <= ; errno++)
printf("errno.%2d-%s\n", errno, strerror(errno));
exit();
}

结果如下:

 errno. -Success
errno. -Operation not permitted
errno. -No such file or directory
errno. -No such process
errno. -Interrupted system call
errno. -Input/output error
errno. -No such device or address
errno. -Argument list too long
errno. -Exec format error
errno. -Bad file descriptor
errno.-No child processes
errno.-Resource temporarily unavailable
errno.-Cannot allocate memory
errno.-Permission denied
errno.-Bad address
errno.-Block device required
errno.-Device or resource busy
errno.-File exists
errno.-Invalid cross-device link
errno.-No such device
errno.-Not a directory
errno.-Is a directory
errno.-Invalid argument
errno.-Too many open files in system
errno.-Too many open files
errno.-Inappropriate ioctl for device
errno.-Text file busy
errno.-File too large
errno.-No space left on device
errno.-Illegal seek
errno.-Read-only file system
errno.-Too many links
errno.-Broken pipe
errno.-Numerical argument out of domain
errno.-Numerical result out of range
errno.-Resource deadlock avoided
errno.-File name too long
errno.-No locks available
errno.-Function not implemented
errno.-Directory not empty
errno.-Too many levels of symbolic links
errno.-Unknown error
errno.-No message of desired type
errno.-Identifier removed
errno.-Channel number out of range
errno.-Level not synchronized
errno.-Level halted
errno.-Level reset
errno.-Link number out of range
errno.-Protocol driver not attached
errno.-No CSI structure available
errno.-Level halted
errno.-Invalid exchange
errno.-Invalid request descriptor
errno.-Exchange full
errno.-No anode
errno.-Invalid request code
errno.-Invalid slot
errno.-Unknown error
errno.-Bad font file format
errno.-Device not a stream
errno.-No data available
errno.-Timer expired
errno.-Out of streams resources
errno.-Machine is not on the network
errno.-Package not installed
errno.-Object is remote
errno.-Link has been severed
errno.-Advertise error
errno.-Srmount error
errno.-Communication error on send
errno.-Protocol error
errno.-Multihop attempted
errno.-RFS specific error
errno.-Bad message
errno.-Value too large for defined data type
errno.-Name not unique on network
errno.-File descriptor in bad state
errno.-Remote address changed
errno.-Can not access a needed shared library
errno.-Accessing a corrupted shared library
errno.-.lib section in a.out corrupted
errno.-Attempting to link in too many shared libraries
errno.-Cannot exec a shared library directly
errno.-Invalid or incomplete multibyte or wide character
errno.-Interrupted system call should be restarted
errno.-Streams pipe error
errno.-Too many users
errno.-Socket operation on non-socket
errno.-Destination address required
errno.-Message too long
errno.-Protocol wrong type for socket
errno.-Protocol not available
errno.-Protocol not supported
errno.-Socket type not supported
errno.-Operation not supported
errno.-Protocol family not supported
errno.-Address family not supported by protocol
errno.-Address already in use
errno.-Cannot assign requested address
errno.-Network is down
errno.-Network is unreachable
errno.-Network dropped connection on reset
errno.-Software caused connection abort
errno.-Connection reset by peer
errno.-No buffer space available
errno.-Transport endpoint is already connected
errno.-Transport endpoint is not connected
errno.-Cannot send after transport endpoint shutdown
errno.-Too many references: cannot splice
errno.-Connection timed out
errno.-Connection refused
errno.-Host is down
errno.-No route to host
errno.-Operation already in progress
errno.-Operation now in progress
errno.-Stale NFS file handle
errno.-Structure needs cleaning
errno.-Not a XENIX named type file
errno.-No XENIX semaphores available
errno.-Is a named type file
errno.-Remote I/O error
errno.-Disk quota exceeded
errno.-No medium found
errno.-Wrong medium type
errno.-Operation canceled
errno.-Required key not available
errno.-Key has expired
errno.-Key has been revoked
errno.-Key was rejected by service
errno.-Owner died
errno.-State not recoverable

  其中,132及其往后的,都显示unknown error,没有被使用.

  从 errno.h头文件,向上追溯,发现根据不同的机器,放在不同的头文件. 基本上,这些错误码的具体描述都放在 asm-generic/errno-base.h 和 asm-generic/errno.h 这两个头文件中.

  这里顺带将这些对应常量列出:

    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

    asm-generic/errno.h

   #define DLK            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 lib raries */
#define ELIBEXEC 83 /* Cannot exec a shared library directly */
#define EILSEQ 84 /* Illegal byte sequence */
#define ERESTART 85 /* Interrupted system call should be restart ed */
#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 endp oint */
#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 res et */
#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 shut down */
#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 */ #endif

  引自: http://blog.csdn.net/kofiory/article/details/5790409

errno.h 错误码描述.的更多相关文章

  1. 火币网API文档——REST API 错误码

    错误码 行情 API 错误码 错误码 描述 bad-request 错误请求 invalid-parameter 参数错 invalid-command 指令错 code 的具体解释, 参考对应的er ...

  2. AgileBoot - 项目内统一的错误码设计

    本篇文章主要探讨关于统一错误码的设计,并提供笔者的实现 欢迎大家讨论,指正. 该错误码的设计在仓库: github:https://github.com/valarchie/AgileBoot-Bac ...

  3. 写给初学者的Linux errno 错误码机制

    不同于Java的异常处理机制, 当你使用C更多的接触到是基于错误码的异常机制, 简单来说就是当调用的函数发生异常时, 程序不会跳转到一个统一处理异常的地方, 取而代之的是返回一个整型错误码. 可能会有 ...

  4. Socket的错误码和描述(中英文翻译)

    Socket的错误码和描述(中英文翻译) //下面是Socket Error的错误码和描述: Socket error 0 - Directly send error  Socket error 10 ...

  5. Java异常封装(自己定义错误码和描述,附源码)

    真正工作了才发现,Java里面的异常在真正工作中使用还是十分普遍的.什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己可以定义错误码和异常描述. 下面小宝 ...

  6. errno错误码及含义(中文)

    /usr/include/asm/errno.h #define EPERM 1 /* Operation not permitted */操作不允许 #define ENOENT 2 /* No s ...

  7. Socket的错误码和描述

    //下面是Socket Error的错误码和描述: Socket error 0 - Directly send error  Socket error 10004 - Interrupted fun ...

  8. errno 错误码

    转自:http://baike.baidu.com/link?url=uX-q7K-TTL-5AFNT-hjhAP6fvgAwvsNkIMqJqJ3GEspYgtQXsovEEzpqmQ3ZmAgql ...

  9. socket学习及各类错误码(部分转)

    如果本地有多个网卡(即多个ip),要指定本地发送网卡,则在建立的socket上bind所指定的网卡进行connect和send操作.例子程序如下: #include <stdio.h>#i ...

随机推荐

  1. No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'

    运行代码是出现了这个错误,No Entity Framework provider found for the ADO.NET provider with invariant name 'System ...

  2. android host

    74.125.20.31 market.android.com 74.125.20.31 developer.android.com 74.125.20.31 android.googlesource ...

  3. <frameset><frame><iframe>网页框架

    这几个标签都属于同一类功能,就是框架内镶功能: 1)<frameset>意为把页面分解成一定部分,让每一部分显示不同的内镶框架,如(请复制到DW尝试): <html> < ...

  4. Android 有趣味的GridView

    工作这么久以来,都是以解决需求为目标.渐渐发现这种学习方式不好,学到的知识能马上解决问题,但没有经过梳理归纳.故想系统总结下一些有趣味的知识点.在这篇博客中想以一个例子系统讲解下GridView控件涉 ...

  5. MySQL全连接(Full Join)实现,union和union all用法

    MySQL本身不支持你所说的full join(全连接),但可以通过union来实现 ,下面是一个简单测试,可以看看: mysql> CREATE TABLE a(id int,name cha ...

  6. github 提交报403 forbidden的错误解决

    github 提交报403 forbidden的错误解决 $ git push error: The requested URL returned error: 403 Forbidden while ...

  7. SSH的内网穿透

    SSH的内网穿透 1.内网:     ssh -N -f -R 2222:127.0.0.1:22 lienzh@我的PC的IP2.外网:     ssh -p 2222 root@localhost ...

  8. ZOJ(ZJU) 1002 Fire Net(深搜)

    Suppose that we have a square city with straight streets. A map of a city is a square board with n r ...

  9. selenium webdriver python 等待

    AJAX,即“Asynchronous Javascript And  XML”.可以实现网页的异步更新.也就是在不重新加载整个网页的情况下,对网页的某部分进行更新. 现在大多数网站都使用AJAX技术 ...

  10. HPROF学习

    抓取HPROF log 1. GUI 可以通过 adt-bundle-windows-x86_64-20140702\sdk\tools\monitor.bat来抓取. 打开软件,选中相应的包,比如“ ...