`

linux中错误编号对应意思

阅读更多
查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。
以下来自linux 2.4.20-18的内核代码中的/usr/include/asm/errno.h
#ifndef _I386_ERRNO_H
#define _I386_ERRNO_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 /* Arg 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 */
#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 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 */
#endif
分享到:
评论

相关推荐

    linux中添加系统调用

    在Linux操作系统中,系统调用是用户空间与内核空间交互的主要途径,它们提供了安全、高效的方法来执行底层操作,如文件I/O、进程管理、内存管理等。本主题将深入探讨如何在Linux 2.6.30版本中添加自定义的系统调用,...

    在Linux中添加新的系统调用

    - **系统调用表**:每个系统调用都有一个唯一的编号,这些编号被存储在一个名为`sys_call_table`的数组中。该数组中的每一个元素都指向一个具体的系统调用处理函数。 - **系统调用宏**:为了方便地使用系统调用,...

    Linux系统设备文件读写_linux系统中设备文件读写_

    例如,所有串口设备的主设备号是4,次设备号则根据实际串口编号(如COM1对应1,COM2对应2等)来设置。 在描述中提到的`app-read.c`和`app-write.c`可能是两个示例程序,分别演示了如何读取和写入设备文件。在C语言...

    Linux iNode 7.3 x64 iNodeManager64_H3C.tar.gz

    每个文件或目录在Linux文件系统中都对应一个iNode,而实际的数据则存储在磁盘块中。iNode编号是唯一的,通过这个编号可以快速找到文件或目录的相关信息,提高了文件操作的效率。 iNodeManager64_H3C作为一款网络...

    linux C interface

    在Linux操作系统中,C接口是开发人员与系统交互的基础,它是操作系统内核提供给应用程序的一组函数和数据结构。Linux C接口提供了丰富的功能,包括文件操作、进程控制、网络通信、内存管理等,使得程序员可以编写...

    linux 下485 驱动程序

    在Linux中,这通常是通过`/dev/ttySx`设备文件进行的,其中`x`代表串口编号。驱动会调用内核API来设置这些参数。 2. **数据发送**:`485_send_data.c`可能包含了发送数据的函数。在Linux下,驱动程序会调用`write()...

    linux基础试卷版

    在 Linux 系统中,/etc 目录用于存储系统配置文件和用户信息。 4. 通配符挑选文件 要挑选出编号为 1、3、5 的文件,可以使用 file_[135].txt 通配符。这个通配符将匹配文件名中包含 1、3、5 的文件。 5. 文件权限...

    linux c编程实战源码

    1.有些程序是“面试题选”部分的程序,这些程序是习题,有些是不完整(没有main函数,只是一个函数)、有些是故意留有错误的,但书中的例题解答里已经详细说明错误的原因。所以,并不是每个程序都可以编译运行的,所有...

    linux_tun_test.rar

    在Linux系统中,TUN设备可以通过`tunctl`命令进行创建和管理。例如,使用`sudo tunctl -u 用户名`创建一个以当前用户权限运行的TUN设备,然后使用`ifconfig tunX 192.168.1.1 up`命令为新设备分配IP地址并激活。这里...

    linux系统调用过程分析

    在Linux系统中,这些调用通常是用C语言和汇编语言编写。 2. **系统调用与普通函数调用的区别** - **运行环境不同**:普通函数调用发生在用户空间,而系统调用则是在内核空间进行。 - **进入方式不同**:普通函数...

    linux不重启主机识别硬盘.txt

    根据提供的文件信息,本文将详细解释如何在Linux系统中不重启服务器的情况下识别新添加的硬盘。这种方法对于在生产环境中实时扩展存储容量非常有用,避免了因重启而导致的服务中断。 ### Linux 不重启主机识别硬盘 ...

    Linux系统命令及通配符详解

    在Linux系统中,熟练掌握各种命令是非常重要的。本文将详细介绍几个常用的Linux命令及其功能,包括`cat`、`cd`、`chmod`和`chown`等,并对通配符的使用进行解释。这些内容非常适合Linux初学者学习。 #### 二、`cat`...

    linux TCP/IP协议源码

    在Linux系统中,这些层次由不同的模块实现,如socket接口对应应用层,TCP和UDP协议处理传输层,IP协议处理网络层,而ARP和以太网驱动则属于数据链路层。 2. **TCP(传输控制协议)** TCP是面向连接的、可靠的传输...

    p8670579_112010_LINUX.zip

    描述中提到的“机器CPU如果是AMD64位,在VMware里装Linux32,再装32位Oracle会出现netca无法执行的错误”,揭示了这个问题的具体场景。让我们深入探讨一下相关知识点。 1. **AMD64架构**: AMD64是AMD公司推出的一种...

    linux pagemap文件详解

    Linux中的pagemap是自2.6.25内核版本以来引入的一种新接口,它允许用户空间程序通过读取/proc目录下的文件来检查页表及相关信息。这个功能为系统监控、性能分析以及内存管理提供了强大的工具。下面将详细解释pagemap...

    Linux操作系统复习题.pdf

    1. **IDE设备命名编号**:在Linux中,IDE设备的命名规则通常为hda、hdb等,其中'h'代表IDE,'a'和'b'分别表示第一个IDE控制器上的主设备和次设备。正确选项为D:hda表示第一个IDE控制器,主设备。 2. **Linux创始人...

Global site tag (gtag.js) - Google Analytics