Linux errno.h

Linux通过errno这个变量来记录最近一次出错的内容,类似Windows下的GetLastError()函数的返回值。

 

/* errno is not a global variable, because that would make using it

   non-reentrant.  Instead, its address is returned by the function

   __errno.  */

 

#ifndef _SYS_ERRNO_H_

#ifdef __cplusplus

extern "C" {

#endif

#define _SYS_ERRNO_H_

 

#include <sys/reent.h>

 

#ifndef _REENT_ONLY

#define errno (*__errno())

extern int *__errno _PARAMS ((void));

#endif

 

/* Please don't use these variables directly.

   Use strerror instead. */

extern __IMPORT _CONST char * _CONST _sys_errlist[];

extern __IMPORT int _sys_nerr;

#ifdef __CYGWIN__

extern __IMPORT const char * const sys_errlist[];

extern __IMPORT int sys_nerr;

#endif

 

#define __errno_r(ptr) ((ptr)->_errno)

 

#define EPERM 1 /* Not super-user */

#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 children */

#define EAGAIN 11 /* No more processes */

#define ENOMEM 12 /* Not enough core */

#define EACCES 13 /* Permission denied */

#define EFAULT 14 /* Bad address */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ENOTBLK 15 /* Block device required */

#endif

#define EBUSY 16 /* Mount device 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 /* Too many open files in system */

#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 arg out of domain of func */

#define ERANGE 34 /* Math result not representable */

#define ENOMSG 35 /* No message of desired type */

#define EIDRM 36 /* Identifier removed */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ECHRNG 37 /* Channel number out of range */

#define EL2NSYNC 38 /* Level 2 not synchronized */

#define EL3HLT 39 /* Level 3 halted */

#define EL3RST 40 /* Level 3 reset */

#define ELNRNG 41 /* Link number out of range */

#define EUNATCH 42 /* Protocol driver not attached */

#define ENOCSI 43 /* No CSI structure available */

#define EL2HLT 44 /* Level 2 halted */

#endif

#define EDEADLK 45 /* Deadlock condition */

#define ENOLCK 46 /* No record locks available */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define EBADE 50 /* Invalid exchange */

#define EBADR 51 /* Invalid request descriptor */

#define EXFULL 52 /* Exchange full */

#define ENOANO 53 /* No anode */

#define EBADRQC 54 /* Invalid request code */

#define EBADSLT 55 /* Invalid slot */

#define EDEADLOCK 56 /* File locking deadlock error */

#define EBFONT 57 /* Bad font file fmt */

#endif

#define ENOSTR 60 /* Device not a stream */

#define ENODATA 61 /* No data (for no delay io) */

#define ETIME 62 /* Timer expired */

#define ENOSR 63 /* Out of streams resources */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ENONET 64 /* Machine is not on the network */

#define ENOPKG 65 /* Package not installed */

#define EREMOTE 66 /* The object is remote */

#endif

#define ENOLINK 67 /* The link has been severed */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define EADV 68 /* Advertise error */

#define ESRMNT 69 /* Srmount error */

#define ECOMM 70 /* Communication error on send */

#endif

#define EPROTO 71 /* Protocol error */

#define EMULTIHOP 74 /* Multihop attempted */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ELBIN 75 /* Inode is remote (not really error) */

#define EDOTDOT 76 /* Cross mount point (not really error) */

#endif

#define EBADMSG 77 /* Trying to read unreadable message */

#define EFTYPE 79 /* Inappropriate file type or format */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ENOTUNIQ 80 /* Given log. name not unique */

#define EBADFD 81 /* f.d. invalid for this operation */

#define EREMCHG 82 /* Remote address changed */

#define ELIBACC 83 /* Can't access a needed shared lib */

#define ELIBBAD 84 /* Accessing a corrupted shared lib */

#define ELIBSCN 85 /* .lib section in a.out corrupted */

#define ELIBMAX 86 /* Attempting to link in too many libs */

#define ELIBEXEC 87 /* Attempting to exec a shared library */

#endif

#define ENOSYS 88 /* Function not implemented */

#ifdef __CYGWIN__

#define ENMFILE 89      /* No more files */

#endif

#define ENOTEMPTY 90 /* Directory not empty */

#define ENAMETOOLONG 91 /* File or path name too long */

#define ELOOP 92 /* Too many symbolic links */

#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */

#define EPFNOSUPPORT 96 /* Protocol family not supported */

#define ECONNRESET 104  /* Connection reset by peer */

#define ENOBUFS 105 /* No buffer space available */

#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */

#define EPROTOTYPE 107 /* Protocol wrong type for socket */

#define ENOTSOCK 108 /* Socket operation on non-socket */

#define ENOPROTOOPT 109 /* Protocol not available */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ESHUTDOWN 110 /* Can't send after socket shutdown */

#endif

#define ECONNREFUSED 111 /* Connection refused */

#define EADDRINUSE 112 /* Address already in use */

#define ECONNABORTED 113 /* Connection aborted */

#define ENETUNREACH 114 /* Network is unreachable */

#define ENETDOWN 115 /* Network interface is not configured */

#define ETIMEDOUT 116 /* Connection timed out */

#define EHOSTDOWN 117 /* Host is down */

#define EHOSTUNREACH 118 /* Host is unreachable */

#define EINPROGRESS 119 /* Connection already in progress */

#define EALREADY 120 /* Socket already connected */

#define EDESTADDRREQ 121 /* Destination address required */

#define EMSGSIZE 122 /* Message too long */

#define EPROTONOSUPPORT 123 /* Unknown protocol */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ESOCKTNOSUPPORT 124 /* Socket type not supported */

#endif

#define EADDRNOTAVAIL 125 /* Address not available */

#define ENETRESET 126

#define EISCONN 127 /* Socket is already connected */

#define ENOTCONN 128 /* Socket is not connected */

#define ETOOMANYREFS 129

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define EPROCLIM 130

#define EUSERS 131

#endif

#define EDQUOT 132

#define ESTALE 133

#define ENOTSUP 134 /* Not supported */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ENOMEDIUM 135   /* No medium (in tape drive) */

#endif

#ifdef __CYGWIN__

#define ENOSHARE 136    /* No such host or network path */

#define ECASECLASH 137  /* Filename exists with different case */

#endif

#define EILSEQ 138

#define EOVERFLOW 139 /* Value too large for defined data type */

#define ECANCELED 140 /* Operation canceled */

#define ENOTRECOVERABLE 141 /* State not recoverable */

#define EOWNERDEAD 142 /* Previous owner died */

#ifdef __LINUX_ERRNO_EXTENSIONS__

#define ESTRPIPE 143 /* Streams pipe error */

#endif

#define EWOULDBLOCK EAGAIN /* Operation would block */

 

#define __ELASTERROR 2000 /* Users can add values starting here */

 

#ifdef __cplusplus

}

#endif

#endif /* _SYS_ERRNO_H */

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值