• No results found

Typical Unix Errors From errno.h Header File

sysiocod errors are system specific, and are reported directly from the operating system. For WIndows you can use the built-in helpmsg system to obtain the meaning of these errors:

>net helpmsg <msg_no>

From Unix, you need to reference the errno.h header file. Here is a typical file (from AIX) provided as a handy reference.

#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 descriptor */ #define ECHILD 10 /* No child processes */ #define EAGAIN 11 /* Resource temporarily unavailable */ #define ENOMEM 12 /* Not enough space */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Resource busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Improper 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 /* Inappropriate I/O control operation */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Invalid seek */ #define EROFS 30 /* Read only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM 33 /* Domain error within math function */ #define ERANGE 34 /* Result too large */ #define ENOMSG 35 /* No message of desired type */ #define EIDRM 36 /* Identifier removed */ #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 */ #define EDEADLK 45 /* Resource deadlock avoided */ #define ENOTREADY 46 /* Device not ready */ #define EWRPROTECT 47 /* Write-protected media */ #define EFORMAT 48 /* Unformatted media */ #define ENOLCK 49 /* No locks available */ #define ENOCONNECT 50 /* no connection */ #define ESTALE 52 /* no filesystem */ #define EDIST 53 /* old, currently unused AIX errno*/ /* non-blocking and interrupt i/o */

/*

* AIX returns EAGAIN where 4.3BSD used EWOULDBLOCK;

* but, the standards insist on unique errno values for each errno. * A unique value is reserved for users that want to code case * statements for systems that return either EAGAIN or EWOULDBLOCK. */

#if _XOPEN_SOURCE_EXTENDED==1

#define EWOULDBLOCK EAGAIN /* Operation would block */ #else /* _XOPEN_SOURCE_EXTENDED */

#define EWOULDBLOCK 54

#endif /* _XOPEN_SOURCE_EXTENDED */

#define EINPROGRESS 55 /* Operation now in progress */ #define EALREADY 56 /* Operation already in progress */ /* ipc/network software */

/* argument errors */

#define ENOTSOCK 57 /* Socket operation on non-socket */ #define EDESTADDRREQ 58 /* Destination address required */ #define EDESTADDREQ EDESTADDRREQ /* Destination address required */ #define EMSGSIZE 59 /* Message too long */

#define EPROTOTYPE 60 /* Protocol wrong type for socket */ #define ENOPROTOOPT 61 /* Protocol not available */

#define EPROTONOSUPPORT 62 /* Protocol not supported */ #define ESOCKTNOSUPPORT 63 /* Socket type not supported */

#define EOPNOTSUPP 64 /* Operation not supported on socket */ #define EPFNOSUPPORT 65 /* Protocol family not supported */

#define EAFNOSUPPORT 66 /* Address family not supported by protocol family */ #define EADDRINUSE 67 /* Address already in use */

#define EADDRNOTAVAIL 68 /* Can't assign requested address */ /* operational errors */

#define ENETDOWN 69 /* Network is down */ #define ENETUNREACH 70 /* Network is unreachable */

#define ENETRESET 71 /* Network dropped connection on reset */ #define ECONNABORTED 72 /* Software caused connection abort */ #define ECONNRESET 73 /* Connection reset by peer */

#define ENOBUFS 74 /* No buffer space available */ #define EISCONN 75 /* Socket is already connected */ #define ENOTCONN 76 /* Socket is not connected */

#define ESHUTDOWN 77 /* Can't send after socket shutdown */ #define ETIMEDOUT 78 /* Connection timed out */

#define ECONNREFUSED 79 /* Connection refused */ #define EHOSTDOWN 80 /* Host is down */ #define EHOSTUNREACH 81 /* No route to host */

/* ERESTART is used to determine if the system call is restartable */ #define ERESTART 82 /* restart the system call */

/* quotas and limits */

#define EPROCLIM 83 /* Too many processes */ #define EUSERS 84 /* Too many users */

#define ELOOP 85 /* Too many levels of symbolic links */ #define ENAMETOOLONG 86 /* File name too long */ /*

* AIX returns EEXIST where 4.3BSD used ENOTEMPTY;

* but, the standards insist on unique errno values for each errno. * A unique value is reserved for users that want to code case * statements for systems that return either EEXIST or ENOTEMPTY. */

#if defined(_ALL_SOURCE) && !defined(_LINUX_SOURCE_COMPAT) #define ENOTEMPTY EEXIST /* Directory not empty */ #else /* not _ALL_SOURCE */

#define ENOTEMPTY 87 #endif /* _ALL_SOURCE */ /* disk quotas */

#define EDQUOT 88 /* Disc quota exceeded */

#define ECORRUPT 89 /* Invalid file system control data */ /* errnors 90-92 reserved for future use compatible with AIX PS/2 */ /* network file system */

#define EREMOTE 93 /* Item is not local to host */ #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 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 ENOSYS 109 /* Function not implemented POSIX */

/* disk device driver */

#define EMEDIA 110 /* media surface error */

#define ESOFT 111 /* I/O completed, but needs relocation */ /* security */

#define ENOATTR 112 /* no attribute found */

#define ESAD 113 /* security authentication denied */ #define ENOTRUST 114 /* not a trusted program */

/* BSD 4.3 RENO */

#define ETOOMANYREFS 115 /* Too many references: can't splice */ #define EILSEQ 116 /* Invalid wide character */

#define ECANCELED 117 /* asynchronous i/o cancelled */ /* SVR4 STREAMS */

#define ENOSR 118 /* temp out of streams resources */ #define ETIME 119 /* I_STR ioctl timed out */

#define EBADMSG 120 /* wrong message type at stream head */ #define EPROTO 121 /* STREAMS protocol error */

#define ENODATA 122 /* no message ready at stream head */ #define ENOSTR 123 /* fd is not a stream */

#define ECLONEME ERESTART /* this is the way we clone a stream ... */ #define ENOTSUP 124 /* POSIX threads unsupported value */ #define EMULTIHOP 125 /* multihop is not allowed */

#define ENOLINK 126 /* the link has been severed */

#define EOVERFLOW 127 /* value too large to be stored in data type */ #endif /* _ANSI_C_SOURCE */