<div style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;text-indent:2em;">
<span style="font-family:Arial, Helvetica, simsun, u5b8bu4f53;"><span style="line-height:25px;">查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。</span></span></div>
<div style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">
<span style="line-height:26px;color:rgb(51,51,51);font-family:Arial;font-size:12px;"><span><br></span></span></div>
<div style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">
<span style="line-height:26px;color:rgb(51,51,51);font-family:Arial;font-size:12px;"><br></span></div>
<span style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">1-34号错误号是在内核源码的include/asm-generic/errno-base.h定义</span><br style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;"><br style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;"><br style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;"><span style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">35-132则是在include/asm-generic/errno.h中定义</span><br style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;"><br style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;"><br style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;"><span style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">剩下还有一些更大的错误号是留给内核级别的,如系统调用等,</span><span style="line-height:26px;color:rgb(51,51,51);font-family:Arial;font-size:12px;">用户程序一般是看不见的这些号的,</span><span style="line-height:26px;color:rgb(51,51,51);font-family:Arial;font-size:12px;">Ubuntu9.10中/usr/src/linux-headers-2.6.31-21-generic/include/linux/errno.h<br></span><span style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;"></span>
<div style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">
<br></div>
<div style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">
<br></div>
<div style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">
<br></div>
<div style="color:rgb(70,70,70);font-family:simsun;font-size:14px;line-height:21px;">
<div><span style="color:#333333;"><span style="line-height:26px;">#ifndef _ASM_GENERIC_ERRNO_BASE_H</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define _ASM_GENERIC_ERRNO_BASE_H</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;"><br></span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define EPERM 1 /* Operation not permitted */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define ENOENT 2 /* No such file or directory */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define ESRCH 3 /* No such process */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define EINTR 4 /* Interrupted system call */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define EIO 5 /* I/O error */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define ENXIO 6 /* No such device or address */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define E2BIG 7 /* Argument list too long */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define ENOEXEC 8 /* Exec format error */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define EBADF 9 /* Bad file number */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define ECHILD 10 /* No child processes */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define EAGAIN 11 /* Try again */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define ENOMEM 12 /* Out of memory */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define EACCES 13 /* Permission denied */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define EFAULT 14 /* Bad address */</span></span></div>
<div><span style="color:#333333;"><span style="line-height:26px;">#define ENOTBLK 15 |
|