strerror.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 345 行 · 第 1/2 页
C
345 行
/****************************************************************************
*
* Open Watcom Project
*
* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
*
* ========================================================================
*
* This file contains Original Code and/or Modifications of Original
* Code as defined in and that are subject to the Sybase Open Watcom
* Public License version 1.0 (the 'License'). You may not use this file
* except in compliance with the License. BY USING THIS FILE YOU AGREE TO
* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
* provided with the Original Code and Modifications, and is also
* available at www.sybase.com/developer/opensource.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
* NON-INFRINGEMENT. Please see the License for the specific language
* governing rights and limitations under the License.
*
* ========================================================================
*
* Description: Implementation of strerror() function.
*
****************************************************************************/
#include "variety.h"
#include "widechar.h"
#include <string.h>
#include <errno.h>
#include "rtdata.h"
#if defined(__NT__)
#include <windows.h>
#endif
#include "errstr.h"
#ifndef __WIDECHAR__
#ifdef __LINUX__
char *_sys_errlist[] = {
/* 0 EOK */ "No error",
/* 1 EPERM */ "Operation not permitted",
/* 2 ENOENT */ "No such file or directory",
/* 3 ESRCH */ "No such process",
/* 4 EINTR */ "Interrupted system call",
/* 5 EIO */ "I/O error",
/* 6 ENXIO */ "No such device or address",
/* 7 E2BIG */ "Arg list too long",
/* 8 ENOEXEC */ "Exec format error",
/* 9 EBADF */ "Bad file number",
/* 10 ECHILD */ "No child processes",
/* 11 EAGAIN */ "Try again",
/* 12 ENOMEM */ "Out of memory",
/* 13 EACCES */ "Permission denied",
/* 14 EFAULT */ "Bad address",
/* 15 ENOTBLK */ "Block device required",
/* 16 EBUSY */ "Device or resource busy",
/* 17 EEXIST */ "File exists",
/* 18 EXDEV */ "Cross-device link",
/* 19 ENODEV */ "No such device",
/* 20 ENOTDIR */ "Not a directory",
/* 21 EISDIR */ "Is a directory",
/* 22 EINVAL */ "Invalid argument",
/* 23 ENFILE */ "File table overflow",
/* 24 EMFILE */ "Too many open files",
/* 25 ENOTTY */ "Not a typewriter",
/* 26 ETXTBSY */ "Text file busy",
/* 27 EFBIG */ "File too large",
/* 28 ENOSPC */ "No space left on device",
/* 29 ESPIPE */ "Illegal seek",
/* 30 EROFS */ "Read-only file system",
/* 31 EMLINK */ "Too many links",
/* 32 EPIPE */ "Broken pipe",
/* 33 EDOM */ "Math argument out of domain of func",
/* 34 ERANGE */ "Math result not representable",
/* 35 EDEADLK */ "Resource deadlock would occur",
/* 36 ENAMETOOLONG */ "File name too long",
/* 37 ENOLCK */ "No record locks available",
/* 38 ENOSYS */ "Function not implemented",
/* 39 ENOTEMPTY */ "Directory not empty",
/* 40 ELOOP */ "Too many symbolic links encountered",
/* 41 */ "",
/* 42 ENOMSG */ "No message of desired type",
/* 43 EIDRM */ "Identifier removed",
/* 44 ECHRNG */ "Channel number out of range",
/* 45 EL2NSYNC */ "Level 2 not synchronized",
/* 46 EL3HLT */ "Level 3 halted",
/* 47 EL3RST */ "Level 3 reset",
/* 48 ELNRNG */ "Link number out of range",
/* 49 EUNATCH */ "Protocol driver not attached",
/* 50 ENOCSI */ "No CSI structure available",
/* 51 EL2HLT */ "Level 2 halted",
/* 52 EBADE */ "Invalid exchange",
/* 53 EBADR */ "Invalid request descriptor",
/* 54 EXFULL */ "Exchange full",
/* 55 ENOANO */ "No anode",
/* 56 EBADRQC */ "Invalid request code",
/* 57 EBADSLT */ "Invalid slot",
/* 58 */ "",
/* 59 EBFONT */ "Bad font file format",
/* 60 ENOSTR */ "Device not a stream",
/* 61 ENODATA */ "No data available",
/* 62 ETIME */ "Timer expired",
/* 63 ENOSR */ "Out of streams resources",
/* 64 ENONET */ "Machine is not on the network",
/* 65 ENOPKG */ "Package not installed",
/* 66 EREMOTE */ "Object is remote",
/* 67 ENOLINK */ "Link has been severed",
/* 68 EADV */ "Advertise error",
/* 69 ESRMNT */ "Srmount error",
/* 70 ECOMM */ "Communication error on send",
/* 71 EPROTO */ "Protocol error",
/* 72 EMULTIHOP */ "Multihop attempted",
/* 73 EDOTDOT */ "RFS specific error",
/* 74 EBADMSG */ "Not a data message",
/* 75 EOVERFLOW */ "Value too large for defined data type",
/* 76 ENOTUNIQ */ "Name not unique on network",
/* 77 EBADFD */ "File descriptor in bad state",
/* 78 EREMCHG */ "Remote address changed",
/* 79 ELIBACC */ "Can not access a needed shared library",
/* 80 ELIBBAD */ "Accessing a corrupted shared library",
/* 81 ELIBSCN */ ".lib section in a.out corrupted",
/* 82 ELIBMAX */ "Attempting to link in too many shared libraries",
/* 83 ELIBEXEC */ "Cannot exec a shared library directly",
/* 84 EILSEQ */ "Illegal byte sequence",
/* 85 ERESTART */ "Interrupted system call should be restarted",
/* 86 ESTRPIPE */ "Streams pipe error",
/* 87 EUSERS */ "Too many users",
/* 88 ENOTSOCK */ "Socket operation on non-socket",
/* 89 EDESTADDRREQ */ "Destination address required",
/* 90 EMSGSIZE */ "Message too long",
/* 91 EPROTOTYPE */ "Protocol wrong type for socket",
/* 92 ENOPROTOOPT */ "Protocol not available",
/* 93 EPROTONOSUPPORT */ "Protocol not supported",
/* 94 ESOCKTNOSUPPORT */ "Socket type not supported",
/* 95 EOPNOTSUPP */ "Operation not supported on transport endpoint",
/* 96 EPFNOSUPPORT */ "Protocol family not supported",
/* 97 EAFNOSUPPORT */ "Address family not supported by protocol",
/* 98 EADDRINUSE */ "Address already in use",
/* 99 EADDRNOTAVAIL */ "Cannot assign requested address",
/* 100 ENETDOWN */ "Network is down",
/* 101 ENETUNREACH */ "Network is unreachable",
/* 102 ENETRESET */ "Network dropped connection because of reset",
/* 103 ECONNABORTED */ "Software caused connection abort",
/* 104 ECONNRESET */ "Connection reset by peer",
/* 105 ENOBUFS */ "No buffer space available",
/* 106 EISCONN */ "Transport endpoint is already connected",
/* 107 ENOTCONN */ "Transport endpoint is not connected",
/* 108 ESHUTDOWN */ "Cannot send after transport endpoint shutdown",
/* 109 ETOOMANYREFS */ "Too many references: cannot splice",
/* 110 ETIMEDOUT */ "Connection timed out",
/* 111 ECONNREFUSED */ "Connection refused",
/* 112 EHOSTDOWN */ "Host is down",
/* 113 EHOSTUNREACH */ "No route to host",
/* 114 EALREADY */ "Operation already in progress",
/* 115 EINPROGRESS */ "Operation now in progress",
/* 116 ESTALE */ "Stale NFS file handle",
/* 117 EUCLEAN */ "Structure needs cleaning",
/* 118 ENOTNAM */ "Not a XENIX named type file",
/* 119 ENAVAIL */ "No XENIX semaphores available",
/* 120 EISNAM */ "Is a named type file",
/* 121 EREMOTEIO */ "Remote I/O error",
/* 122 EDQUOT */ "Quota exceeded",
/* 121 */ "",
/* 123 ENOMEDIUM */ "No medium found",
/* 124 EMEDIUMTYPE */ "Wrong medium type"
/* if more are added, be sure to update _sys_nerr accordingly */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?