strerror.c
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:6k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * Copyright (C) 1999  Ross Combs (rocombs@cs.nmsu.edu)
  3.  *
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  */
  18. #include "common/setup_before.h"
  19. #ifndef HAVE_STRERROR
  20. #include <errno.h>
  21. #include "strerror.h"
  22. #include "common/setup_after.h"
  23. extern char const * strerror(int errornum)
  24. {
  25.     if (errornum==0)
  26. return "No error";
  27. #ifdef EPERM
  28.     if (errornum==EPERM)
  29. return "Operation not permitted";
  30. #endif
  31. #ifdef ENOENT
  32.     if (errornum==ENOENT)
  33. return "No such file or directory";
  34. #endif
  35. #ifdef ESRCH
  36.     if (errornum==ESRCH)
  37. return "No such process";
  38. #endif
  39. #ifdef EINTR
  40.     if (errornum==EINTR)
  41. return "Interrupted system call";
  42. #endif
  43. #ifdef EIO
  44.     if (errornum==EIO)
  45. return "I/O error";
  46. #endif
  47. #ifdef ENXIO
  48.     if (errornum==EIO)
  49. return "No such device or address";
  50. #endif
  51. #ifdef EBADF
  52.     if (errornum==EBADF)
  53. return "Bad file number";
  54. #endif
  55. #ifdef EAGAIN
  56.     if (errornum==EAGAIN)
  57. return "Try again";
  58. #endif
  59. #ifdef ENOMEM
  60.     if (errornum==ENOMEM)
  61. return "Out of memory";
  62. #endif
  63. #ifdef EACCES
  64.     if (errornum==EACCES)
  65. return "Permission denied";
  66. #endif
  67. #ifdef EFAULT
  68.     if (errornum==EFAULT)
  69. return "Bad address";
  70. #endif
  71. #ifdef EBUSY
  72.     if (errornum==EBUSY)
  73. return "Device or resource busy";
  74. #endif
  75. #ifdef EEXIST
  76.     if (errornum==EEXIST)
  77. return "File exists";
  78. #endif
  79. #ifdef EXDEV
  80.     if (errornum==EXDEV)
  81. return "Cross-device link";
  82. #endif
  83. #ifdef EDEADLK
  84.     if (errornum==EXDEV)
  85. return "Resource deadlock would occur";
  86. #endif
  87. #ifdef EDEADLOCK
  88.     if (errornum==EDEADLOCK)
  89. return "Resource deadlock would occur";
  90. #endif
  91. #ifdef ENODEV
  92.     if (errornum==ENODEV)
  93. return "No such device";
  94. #endif
  95. #ifdef ENOTDIR
  96.     if (errornum==ENOTDIR)
  97. return "Not a directory";
  98. #endif
  99. #ifdef EISDIR
  100.     if (errornum==EISDIR)
  101. return "Is a directory";
  102. #endif
  103. #ifdef EINVAL
  104.     if (errornum==EINVAL)
  105. return "Invalid argument";
  106. #endif
  107. #ifdef ENFILE
  108.     if (errornum==ENFILE)
  109. return "Too many open files in system";
  110. #endif
  111. #ifdef EMFILE
  112.     if (errornum==EMFILE)
  113. return "Too many open files";
  114. #endif
  115. #ifdef ENOTTY
  116.     if (errornum==ENOTTY)
  117. return "Not a typewriter";
  118. #endif
  119. #ifdef ETXTBSY
  120.     if (errornum==ETXTBSY)
  121. return "Text file busy";
  122. #endif
  123. #ifdef EFBIG
  124.     if (errornum==EFBIG)
  125. return "File too large";
  126. #endif
  127. #ifdef ENOSPC
  128.     if (errornum==ENOSPC)
  129. return "No space left on device";
  130. #endif
  131. #ifdef ESPIPE
  132.     if (errornum==ESPIPE)
  133. return "Illegal seek";
  134. #endif
  135. #ifdef EROFS
  136.     if (errornum==EROFS)
  137. return "Read-only file system";
  138. #endif
  139. #ifdef EMLINK
  140.     if (errornum==EMLINK)
  141. return "Too many links";
  142. #endif
  143. #ifdef EPIPE
  144.     if (errornum==EPIPE)
  145. return "Broken pipe";
  146. #endif
  147. #ifdef EDOM
  148.     if (errornum==EDOM)
  149. return "Math argument out of domain of func";
  150. #endif
  151. #ifdef ERANGE
  152.     if (errornum==ERANGE)
  153. return "Math result not representable";
  154. #endif
  155. #ifdef ENAMETOOLONG
  156.     if (errornum==ENAMETOOLONG)
  157. return "File name too long";
  158. #endif
  159. #ifdef ENOLCK
  160.     if (errornum==ENOLCK)
  161. return "No record locks available";
  162. #endif
  163. #ifdef ENOSYS
  164.     if (errornum==ENOSYS)
  165. return "Function not implemented";
  166. #endif
  167. #ifdef ENOTEMPTY
  168.     if (errornum==ENOTEMPTY)
  169. return "Directory not empty";
  170. #endif
  171. #ifdef ELOOP
  172.     if (errornum==ELOOP)
  173. return "Too many symbolic links encountered";
  174. #endif
  175. #ifdef EHOSTDOWN
  176.     if (errornum==EHOSTDOWN)
  177. return "Host is down";
  178. #endif
  179. #ifdef EHOSTUNREACH
  180.     if (errornum==EHOSTUNREACH)
  181. return "No route to host";
  182. #endif
  183. #ifdef EALREADY
  184.     if (errornum==EALREADY)
  185. return "Operation already in progress";
  186. #endif
  187. #ifdef EINPROGRESS
  188.     if (errornum==EINPROGRESS)
  189. return "Operation now in progress";
  190. #endif
  191. #ifdef ESTALE
  192.     if (errornum==ESTALE)
  193. return "Stale NFS filehandle";
  194. #endif
  195. #ifdef EDQUOT
  196.     if (errornum==EDQUOT)
  197. return "Quota exceeded";
  198. #endif
  199. #ifdef EWOULDBLOCK
  200.     if (errornum==EWOULDBLOCK)
  201. return "Operation would block";
  202. #endif
  203. #ifdef ECOMM
  204.     if (errornum==ECOMM)
  205. return "Communication error on send";
  206. #endif
  207. #ifdef EPROTO
  208.     if (errornum==EPROTO)
  209. return "Protocol error";
  210. #endif
  211. #ifdef EPROTONOSUPPORT
  212.     if (errornum==EPROTONOSUPPORT)
  213. return "Protocol not supported";
  214. #endif
  215. #ifdef ESOCKTNOSUPPORT
  216.     if (errornum==ESOCKTNOSUPPORT)
  217. return "Socket type not supported";
  218. #endif
  219. #ifdef ESOCKTNOSUPPORT
  220.     if (errornum==EOPNOTSUPP)
  221. return "Operation not supported";
  222. #endif
  223. #ifdef EPFNOSUPPORT
  224.     if (errornum==EPFNOSUPPORT)
  225. return "Protocol family not supported";
  226. #endif
  227. #ifdef EAFNOSUPPORT
  228.     if (errornum==EAFNOSUPPORT)
  229. return "Address family not supported by protocol family";
  230. #endif
  231. #ifdef EADDRINUSE
  232.     if (errornum==EADDRINUSE)
  233. return "Address already in use";
  234. #endif
  235. #ifdef EADDRNOTAVAIL
  236.     if (errornum==EADDRNOTAVAIL)
  237. return "Cannot assign requested address";
  238. #endif
  239. #ifdef ENETDOWN
  240.     if (errornum==ENETDOWN)
  241. return "Network is down";
  242. #endif
  243. #ifdef ENETUNREACH
  244.     if (errornum==ENETUNREACH)
  245. return "Network is unreachable";
  246. #endif
  247. #ifdef ENETRESET
  248.     if (errornum==ENETRESET)
  249. return "Network dropped connection on reset";
  250. #endif
  251. #ifdef ECONNABORTED
  252.     if (errornum==ECONNABORTED)
  253. return "Software caused connection abort";
  254. #endif
  255. #ifdef ECONNRESET
  256.     if (errornum==ECONNRESET)
  257. return " Connection reset by peer";
  258. #endif
  259. #ifdef ENOBUFS
  260.     if (errornum==ENOBUFS)
  261. return "No buffer space available";
  262. #endif
  263. #ifdef EISCONN
  264.     if (errornum==EISCONN)
  265. return "Socket is already connected";
  266. #endif
  267. #ifdef ENOTCONN
  268.     if (errornum==ENOTCONN)
  269. return "Socket is not connected";
  270. #endif
  271. #ifdef ESHUTDOWN
  272.     if (errornum==ESHUTDOWN)
  273. return " Cannot send after socket shutdown";
  274. #endif
  275. #ifdef ETIMEDOUT
  276.     if (errornum==ETIMEDOUT)
  277. return "Connection timed out";
  278. #endif
  279. #ifdef ECONNREFUSED
  280.     if (errornum==ECONNREFUSED)
  281. return "Connection refused";
  282. #endif
  283.     return "Unknown error";
  284. }
  285. #else
  286. typedef int filenotempty; /* make ISO standard happy */
  287. #endif