LINUX errno大全
檢視錯誤程式碼errno是除錯程式的一個重要方法。當linuc C api函式發生異常時,一般會將errno變數(需include errno.h)賦一個整數值,不同的值表示不同的含義,可以透過檢視該值推測出錯的原因。在實際程式設計中用這一招解決了不少原本看來莫名其妙的問題。比較麻煩的是每次都要去linux原始碼裡面查詢錯誤程式碼的含義,現在把它貼出來,以後需要查時就來這裡看了。
35-132則是在include/asm-generic/errno.h中定義
剩下還有一些更大的錯誤號是留給核心級別的,如系統呼叫等,使用者程式一般是看不見的這些號的,Ubuntu9.10中/usr/src/linux-headers-2.6.31-21-generic/include/linux/errno.h
#ifndef
_ASM_GENERIC_ERRNO_BASE_H
#define
_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
#include
<asm-generic/errno-base.h>
#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
*/
#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
*/
#ifdef
__KERNEL__
/*
* These should
never be seen by user programs. To return one of ERESTART*
* codes,
signal_pending() MUST be set. Note that ptrace can observe
these
* at syscall exit
tracing, but they will never be left for the debugged user
* process to
see.
*/
#define ERESTARTSYS
512
#define ERESTARTNOINTR
513
#define ERESTARTNOHAND
514 /* restart if no handler.. */
#define ENOIOCTLCMD
515 /* No ioctl command */
#define
ERESTART_RESTARTBLOCK 516 /* restart by calling sys_restart_syscall
*/
/* Defined for the
NFSv3 protocol */
#define EBADHANDLE
521 /* Illegal NFS file handle */
#define ENOTSYNC
522 /* Update synchronization mismatch */
#define EBADCOOKIE
523 /* Cookie is stale */
#define ENOTSUPP
524 /* Operation is not supported */
#define ETOOSMALL
525 /* Buffer or request is too small
*/
#define ESERVERFAULT
526 /* An untranslatable error occurred
*/
#define EBADTYPE
527 /* Type not supported by server */
#define EJUKEBOX
528 /* Request initiated, but will not complete before
timeout */
#define EIOCBQUEUED
529 /* iocb queued, will get completion event
*/
#define EIOCBRETRY
530 /* iocb queued, will trigger a retry
*/
#endif
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2128958/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux errno 列表Linux
- Linux/Unix Errno CodeLinux
- linux 下各errno的意義Linux
- Linux命令大全Linux
- linux 命令 大全Linux
- Linux命令操作大全Linux
- linux命令大全(續)Linux
- linux GPT命令大全LinuxGPT
- Linux命令大全——LMNOPQLinux
- LINUX網址大全Linux
- linux 學習 大全Linux
- linux if 語法大全Linux
- linux網路程式設計中的errno處理Linux程式設計
- 寫給初學者的Linux errno 錯誤碼機制Linux
- linux 命令基礎大全Linux
- Linux命令總結大全Linux
- Linux系統命令大全。Linux
- 【linux下vi命令大全】Linux
- Linux命令大全總結Linux
- linux下svn命令大全Linux
- Linux 訊號量大全Linux
- linux 解壓命令大全Linux
- linux下vi命令大全Linux
- linux基本命令大全Linux
- Linux 指令大全(3)(轉)Linux
- Linux 指令大全(2)(轉)Linux
- linux指令大全[3](轉)Linux
- linux指令大全[1](轉)Linux
- linux指令大全[2](轉)Linux
- linux終端大全(轉)Linux
- linux VSFTP配置大全LinuxFTP
- Linux 指令大全(2) (轉)Linux
- Linux 指令大全(1) (轉)Linux
- Linux 指令大全(3) (轉)Linux
- Linux叢集大全(轉)Linux
- linux命令大全-linux命令使用和管理Linux
- Linux常用命令大全Linux
- linux下解壓命令大全Linux