Mercurial
comparison third_party/libuv/docs/src/errors.rst @ 160:948de3f54cea
[ThirdParty] Added libuv
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Wed, 14 Jan 2026 19:39:52 -0800 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 159:05cf9467a1c3 | 160:948de3f54cea |
|---|---|
| 1 | |
| 2 .. _errors: | |
| 3 | |
| 4 Error handling | |
| 5 ============== | |
| 6 | |
| 7 In libuv errors are negative numbered constants. As a rule of thumb, whenever | |
| 8 there is a status parameter, or an API functions returns an integer, a negative | |
| 9 number will imply an error. | |
| 10 | |
| 11 When a function which takes a callback returns an error, the callback will never | |
| 12 be called. | |
| 13 | |
| 14 .. note:: | |
| 15 Implementation detail: on Unix error codes are the negated `errno` (or `-errno`), while on | |
| 16 Windows they are defined by libuv to arbitrary negative numbers. | |
| 17 | |
| 18 | |
| 19 Error constants | |
| 20 --------------- | |
| 21 | |
| 22 .. c:macro:: UV_E2BIG | |
| 23 | |
| 24 argument list too long | |
| 25 | |
| 26 .. c:macro:: UV_EACCES | |
| 27 | |
| 28 permission denied | |
| 29 | |
| 30 .. c:macro:: UV_EADDRINUSE | |
| 31 | |
| 32 address already in use | |
| 33 | |
| 34 .. c:macro:: UV_EADDRNOTAVAIL | |
| 35 | |
| 36 address not available | |
| 37 | |
| 38 .. c:macro:: UV_EAFNOSUPPORT | |
| 39 | |
| 40 address family not supported | |
| 41 | |
| 42 .. c:macro:: UV_EAGAIN | |
| 43 | |
| 44 resource temporarily unavailable | |
| 45 | |
| 46 .. c:macro:: UV_EAI_ADDRFAMILY | |
| 47 | |
| 48 address family not supported | |
| 49 | |
| 50 .. c:macro:: UV_EAI_AGAIN | |
| 51 | |
| 52 temporary failure | |
| 53 | |
| 54 .. c:macro:: UV_EAI_BADFLAGS | |
| 55 | |
| 56 bad ai_flags value | |
| 57 | |
| 58 .. c:macro:: UV_EAI_BADHINTS | |
| 59 | |
| 60 invalid value for hints | |
| 61 | |
| 62 .. c:macro:: UV_EAI_CANCELED | |
| 63 | |
| 64 request canceled | |
| 65 | |
| 66 .. c:macro:: UV_EAI_FAIL | |
| 67 | |
| 68 permanent failure | |
| 69 | |
| 70 .. c:macro:: UV_EAI_FAMILY | |
| 71 | |
| 72 ai_family not supported | |
| 73 | |
| 74 .. c:macro:: UV_EAI_MEMORY | |
| 75 | |
| 76 out of memory | |
| 77 | |
| 78 .. c:macro:: UV_EAI_NODATA | |
| 79 | |
| 80 no address | |
| 81 | |
| 82 .. c:macro:: UV_EAI_NONAME | |
| 83 | |
| 84 unknown node or service | |
| 85 | |
| 86 .. c:macro:: UV_EAI_OVERFLOW | |
| 87 | |
| 88 argument buffer overflow | |
| 89 | |
| 90 .. c:macro:: UV_EAI_PROTOCOL | |
| 91 | |
| 92 resolved protocol is unknown | |
| 93 | |
| 94 .. c:macro:: UV_EAI_SERVICE | |
| 95 | |
| 96 service not available for socket type | |
| 97 | |
| 98 .. c:macro:: UV_EAI_SOCKTYPE | |
| 99 | |
| 100 socket type not supported | |
| 101 | |
| 102 .. c:macro:: UV_EALREADY | |
| 103 | |
| 104 connection already in progress | |
| 105 | |
| 106 .. c:macro:: UV_EBADF | |
| 107 | |
| 108 bad file descriptor | |
| 109 | |
| 110 .. c:macro:: UV_EBUSY | |
| 111 | |
| 112 resource busy or locked | |
| 113 | |
| 114 .. c:macro:: UV_ECANCELED | |
| 115 | |
| 116 operation canceled | |
| 117 | |
| 118 .. c:macro:: UV_ECHARSET | |
| 119 | |
| 120 invalid Unicode character | |
| 121 | |
| 122 .. c:macro:: UV_ECONNABORTED | |
| 123 | |
| 124 software caused connection abort | |
| 125 | |
| 126 .. c:macro:: UV_ECONNREFUSED | |
| 127 | |
| 128 connection refused | |
| 129 | |
| 130 .. c:macro:: UV_ECONNRESET | |
| 131 | |
| 132 connection reset by peer | |
| 133 | |
| 134 .. c:macro:: UV_EDESTADDRREQ | |
| 135 | |
| 136 destination address required | |
| 137 | |
| 138 .. c:macro:: UV_EEXIST | |
| 139 | |
| 140 file already exists | |
| 141 | |
| 142 .. c:macro:: UV_EFAULT | |
| 143 | |
| 144 bad address in system call argument | |
| 145 | |
| 146 .. c:macro:: UV_EFBIG | |
| 147 | |
| 148 file too large | |
| 149 | |
| 150 .. c:macro:: UV_EHOSTUNREACH | |
| 151 | |
| 152 host is unreachable | |
| 153 | |
| 154 .. c:macro:: UV_EINTR | |
| 155 | |
| 156 interrupted system call | |
| 157 | |
| 158 .. c:macro:: UV_EINVAL | |
| 159 | |
| 160 invalid argument | |
| 161 | |
| 162 .. c:macro:: UV_EIO | |
| 163 | |
| 164 i/o error | |
| 165 | |
| 166 .. c:macro:: UV_EISCONN | |
| 167 | |
| 168 socket is already connected | |
| 169 | |
| 170 .. c:macro:: UV_EISDIR | |
| 171 | |
| 172 illegal operation on a directory | |
| 173 | |
| 174 .. c:macro:: UV_ELOOP | |
| 175 | |
| 176 too many symbolic links encountered | |
| 177 | |
| 178 .. c:macro:: UV_EMFILE | |
| 179 | |
| 180 too many open files | |
| 181 | |
| 182 .. c:macro:: UV_EMSGSIZE | |
| 183 | |
| 184 message too long | |
| 185 | |
| 186 .. c:macro:: UV_ENAMETOOLONG | |
| 187 | |
| 188 name too long | |
| 189 | |
| 190 .. c:macro:: UV_ENETDOWN | |
| 191 | |
| 192 network is down | |
| 193 | |
| 194 .. c:macro:: UV_ENETUNREACH | |
| 195 | |
| 196 network is unreachable | |
| 197 | |
| 198 .. c:macro:: UV_ENFILE | |
| 199 | |
| 200 file table overflow | |
| 201 | |
| 202 .. c:macro:: UV_ENOBUFS | |
| 203 | |
| 204 no buffer space available | |
| 205 | |
| 206 .. c:macro:: UV_ENODEV | |
| 207 | |
| 208 no such device | |
| 209 | |
| 210 .. c:macro:: UV_ENOENT | |
| 211 | |
| 212 no such file or directory | |
| 213 | |
| 214 .. c:macro:: UV_ENOMEM | |
| 215 | |
| 216 not enough memory | |
| 217 | |
| 218 .. c:macro:: UV_ENONET | |
| 219 | |
| 220 machine is not on the network | |
| 221 | |
| 222 .. c:macro:: UV_ENOPROTOOPT | |
| 223 | |
| 224 protocol not available | |
| 225 | |
| 226 .. c:macro:: UV_ENOSPC | |
| 227 | |
| 228 no space left on device | |
| 229 | |
| 230 .. c:macro:: UV_ENOSYS | |
| 231 | |
| 232 function not implemented | |
| 233 | |
| 234 .. c:macro:: UV_ENOTCONN | |
| 235 | |
| 236 socket is not connected | |
| 237 | |
| 238 .. c:macro:: UV_ENOTDIR | |
| 239 | |
| 240 not a directory | |
| 241 | |
| 242 .. c:macro:: UV_ENOTEMPTY | |
| 243 | |
| 244 directory not empty | |
| 245 | |
| 246 .. c:macro:: UV_ENOTSOCK | |
| 247 | |
| 248 socket operation on non-socket | |
| 249 | |
| 250 .. c:macro:: UV_ENOTSUP | |
| 251 | |
| 252 operation not supported on socket | |
| 253 | |
| 254 .. c:macro:: UV_EOVERFLOW | |
| 255 | |
| 256 value too large for defined data type | |
| 257 | |
| 258 .. c:macro:: UV_EPERM | |
| 259 | |
| 260 operation not permitted | |
| 261 | |
| 262 .. c:macro:: UV_EPIPE | |
| 263 | |
| 264 broken pipe | |
| 265 | |
| 266 .. c:macro:: UV_EPROTO | |
| 267 | |
| 268 protocol error | |
| 269 | |
| 270 .. c:macro:: UV_EPROTONOSUPPORT | |
| 271 | |
| 272 protocol not supported | |
| 273 | |
| 274 .. c:macro:: UV_EPROTOTYPE | |
| 275 | |
| 276 protocol wrong type for socket | |
| 277 | |
| 278 .. c:macro:: UV_ERANGE | |
| 279 | |
| 280 result too large | |
| 281 | |
| 282 .. c:macro:: UV_EROFS | |
| 283 | |
| 284 read-only file system | |
| 285 | |
| 286 .. c:macro:: UV_ESHUTDOWN | |
| 287 | |
| 288 cannot send after transport endpoint shutdown | |
| 289 | |
| 290 .. c:macro:: UV_ESPIPE | |
| 291 | |
| 292 invalid seek | |
| 293 | |
| 294 .. c:macro:: UV_ESRCH | |
| 295 | |
| 296 no such process | |
| 297 | |
| 298 .. c:macro:: UV_ETIMEDOUT | |
| 299 | |
| 300 connection timed out | |
| 301 | |
| 302 .. c:macro:: UV_ETXTBSY | |
| 303 | |
| 304 text file is busy | |
| 305 | |
| 306 .. c:macro:: UV_EXDEV | |
| 307 | |
| 308 cross-device link not permitted | |
| 309 | |
| 310 .. c:macro:: UV_UNKNOWN | |
| 311 | |
| 312 unknown error | |
| 313 | |
| 314 .. c:macro:: UV_EOF | |
| 315 | |
| 316 end of file | |
| 317 | |
| 318 .. c:macro:: UV_ENXIO | |
| 319 | |
| 320 no such device or address | |
| 321 | |
| 322 .. c:macro:: UV_EMLINK | |
| 323 | |
| 324 too many links | |
| 325 | |
| 326 .. c:macro:: UV_ENOTTY | |
| 327 | |
| 328 inappropriate ioctl for device | |
| 329 | |
| 330 .. c:macro:: UV_EFTYPE | |
| 331 | |
| 332 inappropriate file type or format | |
| 333 | |
| 334 .. c:macro:: UV_EILSEQ | |
| 335 | |
| 336 illegal byte sequence | |
| 337 | |
| 338 .. c:macro:: UV_ESOCKTNOSUPPORT | |
| 339 | |
| 340 socket type not supported | |
| 341 | |
| 342 .. c:macro:: UV_EUNATCH | |
| 343 | |
| 344 protocol driver not attached | |
| 345 | |
| 346 API | |
| 347 --- | |
| 348 | |
| 349 .. c:macro:: UV_ERRNO_MAP(iter_macro) | |
| 350 | |
| 351 Macro that expands to a series of invocations of `iter_macro` for | |
| 352 each of the error constants above. `iter_macro` is invoked with two | |
| 353 arguments: the name of the error constant without the `UV_` prefix, | |
| 354 and the error message string literal. | |
| 355 | |
| 356 .. c:function:: const char* uv_strerror(int err) | |
| 357 | |
| 358 Returns the error message for the given error code. Leaks a few bytes | |
| 359 of memory when you call it with an unknown error code. | |
| 360 | |
| 361 .. c:function:: char* uv_strerror_r(int err, char* buf, size_t buflen) | |
| 362 | |
| 363 Returns the error message for the given error code. The zero-terminated | |
| 364 message is stored in the user-supplied buffer `buf` of at most `buflen` bytes. | |
| 365 | |
| 366 .. versionadded:: 1.22.0 | |
| 367 | |
| 368 .. c:function:: const char* uv_err_name(int err) | |
| 369 | |
| 370 Returns the error name for the given error code. Leaks a few bytes | |
| 371 of memory when you call it with an unknown error code. | |
| 372 | |
| 373 .. c:function:: char* uv_err_name_r(int err, char* buf, size_t buflen) | |
| 374 | |
| 375 Returns the error name for the given error code. The zero-terminated | |
| 376 name is stored in the user-supplied buffer `buf` of at most `buflen` bytes. | |
| 377 | |
| 378 .. versionadded:: 1.22.0 | |
| 379 | |
| 380 .. c:function:: int uv_translate_sys_error(int sys_errno) | |
| 381 | |
| 382 Returns the libuv error code equivalent to the given platform dependent error | |
| 383 code: POSIX error codes on Unix (the ones stored in `errno`), and Win32 error | |
| 384 codes on Windows (those returned by `GetLastError()` or `WSAGetLastError()`). | |
| 385 | |
| 386 If `sys_errno` is already a libuv error, it is simply returned. | |
| 387 | |
| 388 .. versionchanged:: 1.10.0 function declared public. |