home *** CD-ROM | disk | FTP | other *** search
- /*
- (C) 1995-96 AROS - The Amiga Replacement OS
- $Id: strerror.c,v 1.1 1996/12/11 11:18:28 aros Exp $
-
- Desc: ANSI C function strerror()
- Lang: english
- */
- #include <errno.h>
- #include <stdio.h>
-
- static const char * _errstrings[] =
- {
- /* 0 */ "No error",
- /* EPERM */ "Operation not permitted",
- /* ENOENT */ "No such file or directory",
- /* ESRCH */ "No such process",
- /* EINTR */ "Interrupted system call",
- /* EIO */ "I/O error",
- /* ENXIO */ "No such device or address",
- /* E2BIG */ "Arg list too long",
- /* ENOEXEC */ "Exec format error",
- /* EBADF */ "Bad file number",
- /* ECHILD */ "No child processes",
- /* EAGAIN */ "Try again",
- /* ENOMEM */ "Out of memory",
- /* EACCES */ "Permission denied",
- /* EFAULT */ "Bad address",
- /* ENOTBLK */ "Block device required",
- /* EBUSY */ "Device or resource busy",
- /* EEXIST */ "File exists",
- /* EXDEV */ "Cross-device link",
- /* ENODEV */ "No such device",
- /* ENOTDIR */ "Not a directory",
- /* EISDIR */ "Is a directory",
- /* EINVAL */ "Invalid argument",
- /* ENFILE */ "File table overflow",
- /* EMFILE */ "Too many open files",
- /* ENOTTY */ "Not a typewriter",
- /* ETXTBSY */ "Text file busy",
- /* EFBIG */ "File too large",
- /* ENOSPC */ "No space left on device",
- /* ESPIPE */ "Illegal seek",
- /* EROFS */ "Read-only file system",
- /* EMLINK */ "Too many links",
- /* EPIPE */ "Broken pipe",
- /* EDOM */ "Math argument out of domain of func",
- /* ERANGE */ "Math result not representable",
- /* EDEADLK */ "Resource deadlock would occur",
- /* ENAMETOOLONG */ "File name too long",
- /* ENOLCK */ "No record locks available",
- /* ENOSYS */ "Function not implemented",
- /* ENOTEMPTY */ "Directory not empty",
- /* ELOOP */ "Too many symbolic links encountered",
- /* EWOULDBLOCK=EAGAIN */ NULL,
- /* ENOMSG */ "No message of desired type",
- /* EIDRM */ "Identifier removed",
- /* ECHRNG */ "Channel number out of range",
- /* EL2NSYNC */ "Level 2 not synchronized",
- /* EL3HLT */ "Level 3 halted",
- /* EL3RST */ "Level 3 reset",
- /* ELNRNG */ "Link number out of range",
- /* EUNATCH */ "Protocol driver not attached",
- /* ENOCSI */ "No CSI structure available",
- /* EL2HLT */ "Level 2 halted",
- /* EBADE */ "Invalid exchange",
- /* EBADR */ "Invalid request descriptor",
- /* EXFULL */ "Exchange full",
- /* ENOANO */ "No anode",
- /* EBADRQC */ "Invalid request code",
- /* EBADSLT */ "Invalid slot",
- /* EDEADLOCK=EDEADLK */ NULL,
- /* EBFONT */ "Bad font file format",
- /* ENOSTR */ "Device not a stream",
- /* ENODATA */ "No data available",
- /* ETIME */ "Timer expired",
- /* ENOSR */ "Out of streams resources",
- /* ENONET */ "Machine is not on the network",
- /* ENOPKG */ "Package not installed",
- /* EREMOTE */ "Object is remote",
- /* ENOLINK */ "Link has been severed",
- /* EADV */ "Advertise error",
- /* ESRMNT */ "Srmount error",
- /* ECOMM */ "Communication error on send",
- /* EPROTO */ "Protocol error",
- /* EMULTIHOP */ "Multihop attempted",
- /* EDOTDOT */ "RFS specific error",
- /* EBADMSG */ "Not a data message",
- /* EOVERFLOW */ "Value too large for defined data type",
- /* ENOTUNIQ */ "Name not unique on network",
- /* EBADFD */ "File descriptor in bad state",
- /* EREMCHG */ "Remote address changed",
- /* ELIBACC */ "Can not access a needed shared library",
- /* ELIBBAD */ "Accessing a corrupted shared library",
- /* ELIBSCN */ ".lib section in a.out corrupted",
- /* ELIBMAX */ "Attempting to link in too many shared libraries",
- /* ELIBEXEC */ "Cannot exec a shared library directly",
- /* EILSEQ */ "Illegal byte sequence",
- /* ERESTART */ "Interrupted system call should be restarted",
- /* ESTRPIPE */ "Streams pipe error",
- /* EUSERS */ "Too many users",
- /* ENOTSOCK */ "Socket operation on non-socket",
- /* EDESTADDRREQ */ "Destination address required",
- /* EMSGSIZE */ "Message too long",
- /* EPROTOTYPE */ "Protocol wrong type for socket",
- /* ENOPROTOOPT */ "Protocol not available",
- /* EPROTONOSUPPORT */ "Protocol not supported",
- /* ESOCKTNOSUPPORT */ "Socket type not supported",
- /* EOPNOTSUPP */ "Operation not supported on transport endpoint",
- /* EPFNOSUPPORT */ "Protocol family not supported",
- /* EAFNOSUPPORT */ "Address family not supported by protocol",
- /* EADDRINUSE */ "Address already in use",
- /* EADDRNOTAVAIL */ "Cannot assign requested address",
- /* ENETDOWN */ "Network is down",
- /* ENETUNREACH */ "Network is unreachable",
- /* ENETRESET */ "Network dropped connection because of reset",
- /* ECONNABORTED */ "Software caused connection abort",
- /* ECONNRESET */ "Connection reset by peer",
- /* ENOBUFS */ "No buffer space available",
- /* EISCONN */ "Transport endpoint is already connected",
- /* ENOTCONN */ "Transport endpoint is not connected",
- /* ESHUTDOWN */ "Cannot send after transport endpoint shutdown",
- /* ETOOMANYREFS */ "Too many references: cannot splice",
- /* ETIMEDOUT */ "Connection timed out",
- /* ECONNREFUSED */ "Connection refused",
- /* EHOSTDOWN */ "Host is down",
- /* EHOSTUNREACH */ "No route to host",
- /* EALREADY */ "Operation already in progress",
- /* EINPROGRESS */ "Operation now in progress",
- /* ESTALE */ "Stale NFS file handle",
- /* EUCLEAN */ "Structure needs cleaning",
- /* ENOTNAM */ "Not a XENIX named type file",
- /* ENAVAIL */ "No XENIX semaphores available",
- /* EISNAM */ "Is a named type file",
- /* EREMOTEIO */ "Remote I/O error",
- /* EDQUOT */ "Quota exceeded",
- };
-
- /*****************************************************************************
-
- NAME */
- #include <string.h>
-
- char * strerror (
-
- /* SYNOPSIS */
- size_t n)
-
- /* FUNCTION
- Returns a readable string for an error number in errno.
-
- INPUTS
- n - The contents of errno or a #define from errno.h
-
- RESULT
- A string describing the error.
-
- NOTES
-
- EXAMPLE
-
- BUGS
-
- SEE ALSO
-
- INTERNALS
-
- HISTORY
-
- ******************************************************************************/
- {
- if (n >= MAX_ERRNO)
- return "Illegal error code";
-
- return (char *)_errstrings[n];
- } /* strerror */
-
-