
1: @node Error Reporting, Memory, Introduction, Top 2: @chapter Error Reporting 3: @c %MENU% How library functions report errors 4: @cindex error reporting 5: @cindex reporting errors 6: @cindex error codes 7: @cindex status codes 8: 9: Many functions in the GNU C library detect and report error conditions, 10: and sometimes your programs need to check for these error conditions. 11: For example, when you open an input file, you should verify that the 12: file was actually opened correctly, and print an error message or take 13: other appropriate action if the call to the library function failed. 14: 15: This chapter describes how the error reporting facility works. Your 16: program should include the header file @file{errno.h} to use this 17: facility. 18: @pindex errno.h 19: 20: @menu 21: * Checking for Errors:: How errors are reported by library functions. 22: * Error Codes:: Error code macros; all of these expand 23: into integer constant values. 24: * Error Messages:: Mapping error codes onto error messages. 25: @end menu 26: 27: @node Checking for Errors, Error Codes, , Error Reporting 28: @section Checking for Errors 29: 30: Most library functions return a special value to indicate that they have 31: failed. The special value is typically @code{-1}, a null pointer, or a 32: constant such as @code{EOF} that is defined for that purpose. But this 33: return value tells you only that an error has occurred. To find out 34: what kind of error it was, you need to look at the error code stored in the 35: variable @code{errno}. This variable is declared in the header file 36: @file{errno.h}. 37: @pindex errno.h 38: 39: @comment errno.h 40: @comment ISO 41: @deftypevr {Variable} {volatile int} errno 42: The variable @code{errno} contains the system error number. You can 43: change the value of @code{errno}. 44: 45: Since @code{errno} is declared @code{volatile}, it might be changed 46: asynchronously by a signal handler; see @ref{Defining Handlers}. 47: However, a properly written signal handler saves and restores the value 48: of @code{errno}, so you generally do not need to worry about this 49: possibility except when writing signal handlers. 50: 51: The initial value of @code{errno} at program startup is zero. Many 52: library functions are guaranteed to set it to certain nonzero values 53: when they encounter certain kinds of errors. These error conditions are 54: listed for each function. These functions do not change @code{errno} 55: when they succeed; thus, the value of @code{errno} after a successful 56: call is not necessarily zero, and you should not use @code{errno} to 57: determine @emph{whether} a call failed. The proper way to do that is 58: documented for each function. @emph{If} the call failed, you can 59: examine @code{errno}. 60: 61: Many library functions can set @code{errno} to a nonzero value as a 62: result of calling other library functions which might fail. You should 63: assume that any library function might alter @code{errno} when the 64: function returns an error. 65: 66: @strong{Portability Note:} @w{ISO C} specifies @code{errno} as a 67: ``modifiable lvalue'' rather than as a variable, permitting it to be 68: implemented as a macro. For example, its expansion might involve a 69: function call, like @w{@code{*_errno ()}}. In fact, that is what it is 70: on the GNU system itself. The GNU library, on non-GNU systems, does 71: whatever is right for the particular system. 72: 73: There are a few library functions, like @code{sqrt} and @code{atan}, 74: that return a perfectly legitimate value in case of an error, but also 75: set @code{errno}. For these functions, if you want to check to see 76: whether an error occurred, the recommended method is to set @code{errno} 77: to zero before calling the function, and then check its value afterward. 78: @end deftypevr 79: 80: @pindex errno.h 81: All the error codes have symbolic names; they are macros defined in 82: @file{errno.h}. The names start with @samp{E} and an upper-case 83: letter or digit; you should consider names of this form to be 84: reserved names. @xref{Reserved Names}. 85: 86: The error code values are all positive integers and are all distinct, 87: with one exception: @code{EWOULDBLOCK} and @code{EAGAIN} are the same. 88: Since the values are distinct, you can use them as labels in a 89: @code{switch} statement; just don't use both @code{EWOULDBLOCK} and 90: @code{EAGAIN}. Your program should not make any other assumptions about 91: the specific values of these symbolic constants. 92: 93: The value of @code{errno} doesn't necessarily have to correspond to any 94: of these macros, since some library functions might return other error 95: codes of their own for other situations. The only values that are 96: guaranteed to be meaningful for a particular library function are the 97: ones that this manual lists for that function. 98: 99: On non-GNU systems, almost any system call can return @code{EFAULT} if 100: it is given an invalid pointer as an argument. Since this could only 101: happen as a result of a bug in your program, and since it will not 102: happen on the GNU system, we have saved space by not mentioning 103: @code{EFAULT} in the descriptions of individual functions. 104: 105: In some Unix systems, many system calls can also return @code{EFAULT} if 106: given as an argument a pointer into the stack, and the kernel for some 107: obscure reason fails in its attempt to extend the stack. If this ever 108: happens, you should probably try using statically or dynamically 109: allocated memory instead of stack memory on that system. 110: 111: @node Error Codes, Error Messages, Checking for Errors, Error Reporting 112: @section Error Codes 113: 114: @pindex errno.h 115: The error code macros are defined in the header file @file{errno.h}. 116: All of them expand into integer constant values. Some of these error 117: codes can't occur on the GNU system, but they can occur using the GNU 118: library on other systems. 119: 120: @comment errno.h 121: @comment POSIX.1: Operation not permitted 122: @deftypevr Macro int EPERM 123: @comment errno 1 @c DO NOT REMOVE 124: Operation not permitted; only the owner of the file (or other resource) 125: or processes with special privileges can perform the operation. 126: @end deftypevr 127: 128: @comment errno.h 129: @comment POSIX.1: No such file or directory 130: @deftypevr Macro int ENOENT 131: @comment errno 2 @c DO NOT REMOVE 132: No such file or directory. This is a ``file doesn't exist'' error 133: for ordinary files that are referenced in contexts where they are 134: expected to already exist. 135: @end deftypevr 136: 137: @comment errno.h 138: @comment POSIX.1: No such process 139: @deftypevr Macro int ESRCH 140: @comment errno 3 @c DO NOT REMOVE 141: No process matches the specified process ID. 142: @end deftypevr 143: 144: @comment errno.h 145: @comment POSIX.1: Interrupted system call 146: @deftypevr Macro int EINTR 147: @comment errno 4 @c DO NOT REMOVE 148: Interrupted function call; an asynchronous signal occurred and prevented 149: completion of the call. When this happens, you should try the call 150: again. 151: 152: You can choose to have functions resume after a signal that is handled, 153: rather than failing with @code{EINTR}; see @ref{Interrupted 154: Primitives}. 155: @end deftypevr 156: 157: @comment errno.h 158: @comment POSIX.1: Input/output error 159: @deftypevr Macro int EIO 160: @comment errno 5 @c DO NOT REMOVE 161: Input/output error; usually used for physical read or write errors. 162: @end deftypevr 163: 164: @comment errno.h 165: @comment POSIX.1: No such device or address 166: @deftypevr Macro int ENXIO 167: @comment errno 6 @c DO NOT REMOVE 168: No such device or address. The system tried to use the device 169: represented by a file you specified, and it couldn't find the device. 170: This can mean that the device file was installed incorrectly, or that 171: the physical device is missing or not correctly attached to the 172: computer. 173: @end deftypevr 174: 175: @comment errno.h 176: @comment POSIX.1: Argument list too long 177: @deftypevr Macro int E2BIG 178: @comment errno 7 @c DO NOT REMOVE 179: Argument list too long; used when the arguments passed to a new program 180: being executed with one of the @code{exec} functions (@pxref{Executing a 181: File}) occupy too much memory space. This condition never arises in the 182: GNU system. 183: @end deftypevr 184: 185: @comment errno.h 186: @comment POSIX.1: Exec format error 187: @deftypevr Macro int ENOEXEC 188: @comment errno 8 @c DO NOT REMOVE 189: Invalid executable file format. This condition is detected by the 190: @code{exec} functions; see @ref{Executing a File}. 191: @end deftypevr 192: 193: @comment errno.h 194: @comment POSIX.1: Bad file descriptor 195: @deftypevr Macro int EBADF 196: @comment errno 9 @c DO NOT REMOVE 197: Bad file descriptor; for example, I/O on a descriptor that has been 198: closed or reading from a descriptor open only for writing (or vice 199: versa). 200: @end deftypevr 201: 202: @comment errno.h 203: @comment POSIX.1: No child processes 204: @deftypevr Macro int ECHILD 205: @comment errno 10 @c DO NOT REMOVE 206: There are no child processes. This error happens on operations that are 207: supposed to manipulate child processes, when there aren't any processes 208: to manipulate. 209: @end deftypevr 210: 211: @comment errno.h 212: @comment POSIX.1: Resource deadlock avoided 213: @deftypevr Macro int EDEADLK 214: @comment errno 11 @c DO NOT REMOVE 215: Deadlock avoided; allocating a system resource would have resulted in a 216: deadlock situation. The system does not guarantee that it will notice 217: all such situations. This error means you got lucky and the system 218: noticed; it might just hang. @xref{File Locks}, for an example. 219: @end deftypevr 220: 221: @comment errno.h 222: @comment POSIX.1: Cannot allocate memory 223: @deftypevr Macro int ENOMEM 224: @comment errno 12 @c DO NOT REMOVE 225: No memory available. The system cannot allocate more virtual memory 226: because its capacity is full. 227: @end deftypevr 228: 229: @comment errno.h 230: @comment POSIX.1: Permission denied 231: @deftypevr Macro int EACCES 232: @comment errno 13 @c DO NOT REMOVE 233: Permission denied; the file permissions do not allow the attempted operation. 234: @end deftypevr 235: 236: @comment errno.h 237: @comment POSIX.1: Bad address 238: @deftypevr Macro int EFAULT 239: @comment errno 14 @c DO NOT REMOVE 240: Bad address; an invalid pointer was detected. 241: In the GNU system, this error never happens; you get a signal instead. 242: @end deftypevr 243: 244: @comment errno.h 245: @comment BSD: Block device required 246: @deftypevr Macro int ENOTBLK 247: @comment errno 15 @c DO NOT REMOVE 248: A file that isn't a block special file was given in a situation that 249: requires one. For example, trying to mount an ordinary file as a file 250: system in Unix gives this error. 251: @end deftypevr 252: 253: @comment errno.h 254: @comment POSIX.1: Device or resource busy 255: @deftypevr Macro int EBUSY 256: @comment errno 16 @c DO NOT REMOVE 257: Resource busy; a system resource that can't be shared is already in use. 258: For example, if you try to delete a file that is the root of a currently 259: mounted filesystem, you get this error. 260: @end deftypevr 261: 262: @comment errno.h 263: @comment POSIX.1: File exists 264: @deftypevr Macro int EEXIST 265: @comment errno 17 @c DO NOT REMOVE 266: File exists; an existing file was specified in a context where it only 267: makes sense to specify a new file. 268: @end deftypevr 269: 270: @comment errno.h 271: @comment POSIX.1: Invalid cross-device link 272: @deftypevr Macro int EXDEV 273: @comment errno 18 @c DO NOT REMOVE 274: An attempt to make an improper link across file systems was detected. 275: This happens not only when you use @code{link} (@pxref{Hard Links}) but 276: also when you rename a file with @code{rename} (@pxref{Renaming Files}). 277: @end deftypevr 278: 279: @comment errno.h 280: @comment POSIX.1: No such device 281: @deftypevr Macro int ENODEV 282: @comment errno 19 @c DO NOT REMOVE 283: The wrong type of device was given to a function that expects a 284: particular sort of device. 285: @end deftypevr 286: 287: @comment errno.h 288: @comment POSIX.1: Not a directory 289: @deftypevr Macro int ENOTDIR 290: @comment errno 20 @c DO NOT REMOVE 291: A file that isn't a directory was specified when a directory is required. 292: @end deftypevr 293: 294: @comment errno.h 295: @comment POSIX.1: Is a directory 296: @deftypevr Macro int EISDIR 297: @comment errno 21 @c DO NOT REMOVE 298: File is a directory; you cannot open a directory for writing, 299: or create or remove hard links to it. 300: @end deftypevr 301: 302: @comment errno.h 303: @comment POSIX.1: Invalid argument 304: @deftypevr Macro int EINVAL 305: @comment errno 22 @c DO NOT REMOVE 306: Invalid argument. This is used to indicate various kinds of problems 307: with passing the wrong argument to a library function. 308: @end deftypevr 309: 310: @comment errno.h 311: @comment POSIX.1: Too many open files 312: @deftypevr Macro int EMFILE 313: @comment errno 24 @c DO NOT REMOVE 314: The current process has too many files open and can't open any more. 315: Duplicate descriptors do count toward this limit. 316: 317: In BSD and GNU, the number of open files is controlled by a resource 318: limit that can usually be increased. If you get this error, you might 319: want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited; 320: @pxref{Limits on Resources}. 321: @end deftypevr 322: 323: @comment errno.h 324: @comment POSIX.1: Too many open files in system 325: @deftypevr Macro int ENFILE 326: @comment errno 23 @c DO NOT REMOVE 327: There are too many distinct file openings in the entire system. Note 328: that any number of linked channels count as just one file opening; see 329: @ref{Linked Channels}. This error never occurs in the GNU system. 330: @end deftypevr 331: 332: @comment errno.h 333: @comment POSIX.1: Inappropriate ioctl for device 334: @deftypevr Macro int ENOTTY 335: @comment errno 25 @c DO NOT REMOVE 336: Inappropriate I/O control operation, such as trying to set terminal 337: modes on an ordinary file. 338: @end deftypevr 339: 340: @comment errno.h 341: @comment BSD: Text file busy 342: @deftypevr Macro int ETXTBSY 343: @comment errno 26 @c DO NOT REMOVE 344: An attempt to execute a file that is currently open for writing, or 345: write to a file that is currently being executed. Often using a 346: debugger to run a program is considered having it open for writing and 347: will cause this error. (The name stands for ``text file busy''.) This 348: is not an error in the GNU system; the text is copied as necessary. 349: @end deftypevr 350: 351: @comment errno.h 352: @comment POSIX.1: File too large 353: @deftypevr Macro int EFBIG 354: @comment errno 27 @c DO NOT REMOVE 355: File too big; the size of a file would be larger than allowed by the system. 356: @end deftypevr 357: 358: @comment errno.h 359: @comment POSIX.1: No space left on device 360: @deftypevr Macro int ENOSPC 361: @comment errno 28 @c DO NOT REMOVE 362: No space left on device; write operation on a file failed because the 363: disk is full. 364: @end deftypevr 365: 366: @comment errno.h 367: @comment POSIX.1: Illegal seek 368: @deftypevr Macro int ESPIPE 369: @comment errno 29 @c DO NOT REMOVE 370: Invalid seek operation (such as on a pipe). 371: @end deftypevr 372: 373: @comment errno.h 374: @comment POSIX.1: Read-only file system 375: @deftypevr Macro int EROFS 376: @comment errno 30 @c DO NOT REMOVE 377: An attempt was made to modify something on a read-only file system. 378: @end deftypevr 379: 380: @comment errno.h 381: @comment POSIX.1: Too many links 382: @deftypevr Macro int EMLINK 383: @comment errno 31 @c DO NOT REMOVE 384: Too many links; the link count of a single file would become too large. 385: @code{rename} can cause this error if the file being renamed already has 386: as many links as it can take (@pxref{Renaming Files}). 387: @end deftypevr 388: 389: @comment errno.h 390: @comment POSIX.1: Broken pipe 391: @deftypevr Macro int EPIPE 392: @comment errno 32 @c DO NOT REMOVE 393: Broken pipe; there is no process reading from the other end of a pipe. 394: Every library function that returns this error code also generates a 395: @code{SIGPIPE} signal; this signal terminates the program if not handled 396: or blocked. Thus, your program will never actually see @code{EPIPE} 397: unless it has handled or blocked @code{SIGPIPE}. 398: @end deftypevr 399: 400: @comment errno.h 401: @comment ISO: Numerical argument out of domain 402: @deftypevr Macro int EDOM 403: @comment errno 33 @c DO NOT REMOVE 404: Domain error; used by mathematical functions when an argument value does 405: not fall into the domain over which the function is defined. 406: @end deftypevr 407: 408: @comment errno.h 409: @comment ISO: Numerical result out of range 410: @deftypevr Macro int ERANGE 411: @comment errno 34 @c DO NOT REMOVE 412: Range error; used by mathematical functions when the result value is 413: not representable because of overflow or underflow. 414: @end deftypevr 415: 416: @comment errno.h 417: @comment POSIX.1: Resource temporarily unavailable 418: @deftypevr Macro int EAGAIN 419: @comment errno 35 @c DO NOT REMOVE 420: Resource temporarily unavailable; the call might work if you try again 421: later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN}; 422: they are always the same in the GNU C library. 423: 424: This error can happen in a few different situations: 425: 426: @itemize @bullet 427: @item 428: An operation that would block was attempted on an object that has 429: non-blocking mode selected. Trying the same operation again will block 430: until some external condition makes it possible to read, write, or 431: connect (whatever the operation). You can use @code{select} to find out 432: when the operation will be possible; @pxref{Waiting for I/O}. 433: 434: @strong{Portability Note:} In many older Unix systems, this condition 435: was indicated by @code{EWOULDBLOCK}, which was a distinct error code 436: different from @code{EAGAIN}. To make your program portable, you should 437: check for both codes and treat them the same. 438: 439: @item 440: A temporary resource shortage made an operation impossible. @code{fork} 441: can return this error. It indicates that the shortage is expected to 442: pass, so your program can try the call again later and it may succeed. 443: It is probably a good idea to delay for a few seconds before trying it 444: again, to allow time for other processes to release scarce resources. 445: Such shortages are usually fairly serious and affect the whole system, 446: so usually an interactive program should report the error to the user 447: and return to its command loop. 448: @end itemize 449: @end deftypevr 450: 451: @comment errno.h 452: @comment BSD: Operation would block 453: @deftypevr Macro int EWOULDBLOCK 454: @comment errno EAGAIN @c DO NOT REMOVE 455: In the GNU C library, this is another name for @code{EAGAIN} (above). 456: The values are always the same, on every operating system. 457: 458: C libraries in many older Unix systems have @code{EWOULDBLOCK} as a 459: separate error code. 460: @end deftypevr 461: 462: @comment errno.h 463: @comment BSD: Operation now in progress 464: @deftypevr Macro int EINPROGRESS 465: @comment errno 36 @c DO NOT REMOVE 466: An operation that cannot complete immediately was initiated on an object 467: that has non-blocking mode selected. Some functions that must always 468: block (such as @code{connect}; @pxref{Connecting}) never return 469: @code{EAGAIN}. Instead, they return @code{EINPROGRESS} to indicate that 470: the operation has begun and will take some time. Attempts to manipulate 471: the object before the call completes return @code{EALREADY}. You can 472: use the @code{select} function to find out when the pending operation 473: has completed; @pxref{Waiting for I/O}. 474: @end deftypevr 475: 476: @comment errno.h 477: @comment BSD: Operation already in progress 478: @deftypevr Macro int EALREADY 479: @comment errno 37 @c DO NOT REMOVE 480: An operation is already in progress on an object that has non-blocking 481: mode selected. 482: @end deftypevr 483: 484: @comment errno.h 485: @comment BSD: Socket operation on non-socket 486: @deftypevr Macro int ENOTSOCK 487: @comment errno 38 @c DO NOT REMOVE 488: A file that isn't a socket was specified when a socket is required. 489: @end deftypevr 490: 491: @comment errno.h 492: @comment BSD: Message too long 493: @deftypevr Macro int EMSGSIZE 494: @comment errno 40 @c DO NOT REMOVE 495: The size of a message sent on a socket was larger than the supported 496: maximum size. 497: @end deftypevr 498: 499: @comment errno.h 500: @comment BSD: Protocol wrong type for socket 501: @deftypevr Macro int EPROTOTYPE 502: @comment errno 41 @c DO NOT REMOVE 503: The socket type does not support the requested communications protocol. 504: @end deftypevr 505: 506: @comment errno.h 507: @comment BSD: Protocol not available 508: @deftypevr Macro int ENOPROTOOPT 509: @comment errno 42 @c DO NOT REMOVE 510: You specified a socket option that doesn't make sense for the 511: particular protocol being used by the socket. @xref{Socket Options}. 512: @end deftypevr 513: 514: @comment errno.h 515: @comment BSD: Protocol not supported 516: @deftypevr Macro int EPROTONOSUPPORT 517: @comment errno 43 @c DO NOT REMOVE 518: The socket domain does not support the requested communications protocol 519: (perhaps because the requested protocol is completely invalid). 520: @xref{Creating a Socket}. 521: @end deftypevr 522: 523: @comment errno.h 524: @comment BSD: Socket type not supported 525: @deftypevr Macro int ESOCKTNOSUPPORT 526: @comment errno 44 @c DO NOT REMOVE 527: The socket type is not supported. 528: @end deftypevr 529: 530: @comment errno.h 531: @comment BSD: Operation not supported 532: @deftypevr Macro int EOPNOTSUPP 533: @comment errno 45 @c DO NOT REMOVE 534: The operation you requested is not supported. Some socket functions 535: don't make sense for all types of sockets, and others may not be 536: implemented for all communications protocols. In the GNU system, this 537: error can happen for many calls when the object does not support the 538: particular operation; it is a generic indication that the server knows 539: nothing to do for that call. 540: @end deftypevr 541: 542: @comment errno.h 543: @comment BSD: Protocol family not supported 544: @deftypevr Macro int EPFNOSUPPORT 545: @comment errno 46 @c DO NOT REMOVE 546: The socket communications protocol family you requested is not supported. 547: @end deftypevr 548: 549: @comment errno.h 550: @comment BSD: Address family not supported by protocol 551: @deftypevr Macro int EAFNOSUPPORT 552: @comment errno 47 @c DO NOT REMOVE 553: The address family specified for a socket is not supported; it is 554: inconsistent with the protocol being used on the socket. @xref{Sockets}. 555: @end deftypevr 556: 557: @comment errno.h 558: @comment BSD: Address already in use 559: @deftypevr Macro int EADDRINUSE 560: @comment errno 48 @c DO NOT REMOVE 561: The requested socket address is already in use. @xref{Socket Addresses}. 562: @end deftypevr 563: 564: @comment errno.h 565: @comment BSD: Cannot assign requested address 566: @deftypevr Macro int EADDRNOTAVAIL 567: @comment errno 49 @c DO NOT REMOVE 568: The requested socket address is not available; for example, you tried 569: to give a socket a name that doesn't match the local host name. 570: @xref{Socket Addresses}. 571: @end deftypevr 572: 573: @comment errno.h 574: @comment BSD: Network is down 575: @deftypevr Macro int ENETDOWN 576: @comment errno 50 @c DO NOT REMOVE 577: A socket operation failed because the network was down. 578: @end deftypevr 579: 580: @comment errno.h 581: @comment BSD: Network is unreachable 582: @deftypevr Macro int ENETUNREACH 583: @comment errno 51 @c DO NOT REMOVE 584: A socket operation failed because the subnet containing the remote host 585: was unreachable. 586: @end deftypevr 587: 588: @comment errno.h 589: @comment BSD: Network dropped connection on reset 590: @deftypevr Macro int ENETRESET 591: @comment errno 52 @c DO NOT REMOVE 592: A network connection was reset because the remote host crashed. 593: @end deftypevr 594: 595: @comment errno.h 596: @comment BSD: Software caused connection abort 597: @deftypevr Macro int ECONNABORTED 598: @comment errno 53 @c DO NOT REMOVE 599: A network connection was aborted locally. 600: @end deftypevr 601: 602: @comment errno.h 603: @comment BSD: Connection reset by peer 604: @deftypevr Macro int ECONNRESET 605: @comment errno 54 @c DO NOT REMOVE 606: A network connection was closed for reasons outside the control of the 607: local host, such as by the remote machine rebooting or an unrecoverable 608: protocol violation. 609: @end deftypevr 610: 611: @comment errno.h 612: @comment BSD: No buffer space available 613: @deftypevr Macro int ENOBUFS 614: @comment errno 55 @c DO NOT REMOVE 615: The kernel's buffers for I/O operations are all in use. In GNU, this 616: error is always synonymous with @code{ENOMEM}; you may get one or the 617: other from network operations. 618: @end deftypevr 619: 620: @comment errno.h 621: @comment BSD: Transport endpoint is already connected 622: @deftypevr Macro int EISCONN 623: @comment errno 56 @c DO NOT REMOVE 624: You tried to connect a socket that is already connected. 625: @xref{Connecting}. 626: @end deftypevr 627: 628: @comment errno.h 629: @comment BSD: Transport endpoint is not connected 630: @deftypevr Macro int ENOTCONN 631: @comment errno 57 @c DO NOT REMOVE 632: The socket is not connected to anything. You get this error when you 633: try to transmit data over a socket, without first specifying a 634: destination for the data. For a connectionless socket (for datagram 635: protocols, such as UDP), you get @code{EDESTADDRREQ} instead. 636: @end deftypevr 637: 638: @comment errno.h 639: @comment BSD: Destination address required 640: @deftypevr Macro int EDESTADDRREQ 641: @comment errno 39 @c DO NOT REMOVE 642: No default destination address was set for the socket. You get this 643: error when you try to transmit data over a connectionless socket, 644: without first specifying a destination for the data with @code{connect}. 645: @end deftypevr 646: 647: @comment errno.h 648: @comment BSD: Cannot send after transport endpoint shutdown 649: @deftypevr Macro int ESHUTDOWN 650: @comment errno 58 @c DO NOT REMOVE 651: The socket has already been shut down. 652: @end deftypevr 653: 654: @comment errno.h 655: @comment BSD: Too many references: cannot splice 656: @deftypevr Macro int ETOOMANYREFS 657: @comment errno 59 @c DO NOT REMOVE 658: ??? 659: @end deftypevr 660: 661: @comment errno.h 662: @comment BSD: Connection timed out 663: @deftypevr Macro int ETIMEDOUT 664: @comment errno 60 @c DO NOT REMOVE 665: A socket operation with a specified timeout received no response during 666: the timeout period. 667: @end deftypevr 668: 669: @comment errno.h 670: @comment BSD: Connection refused 671: @deftypevr Macro int ECONNREFUSED 672: @comment errno 61 @c DO NOT REMOVE 673: A remote host refused to allow the network connection (typically because 674: it is not running the requested service). 675: @end deftypevr 676: 677: @comment errno.h 678: @comment BSD: Too many levels of symbolic links 679: @deftypevr Macro int ELOOP 680: @comment errno 62 @c DO NOT REMOVE 681: Too many levels of symbolic links were encountered in looking up a file name. 682: This often indicates a cycle of symbolic links. 683: @end deftypevr 684: 685: @comment errno.h 686: @comment POSIX.1: File name too long 687: @deftypevr Macro int ENAMETOOLONG 688: @comment errno 63 @c DO NOT REMOVE 689: Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for 690: Files}) or host name too long (in @code{gethostname} or 691: @code{sethostname}; @pxref{Host Identification}). 692: @end deftypevr 693: 694: @comment errno.h 695: @comment BSD: Host is down 696: @deftypevr Macro int EHOSTDOWN 697: @comment errno 64 @c DO NOT REMOVE 698: The remote host for a requested network connection is down. 699: @end deftypevr 700: 701: @comment errno.h 702: @comment BSD: No route to host 703: @deftypevr Macro int EHOSTUNREACH 704: @comment errno 65 @c DO NOT REMOVE 705: The remote host for a requested network connection is not reachable. 706: @end deftypevr 707: 708: @comment errno.h 709: @comment POSIX.1: Directory not empty 710: @deftypevr Macro int ENOTEMPTY 711: @comment errno 66 @c DO NOT REMOVE 712: Directory not empty, where an empty directory was expected. Typically, 713: this error occurs when you are trying to delete a directory. 714: @end deftypevr 715: 716: @comment errno.h 717: @comment BSD: Too many processes 718: @deftypevr Macro int EPROCLIM 719: @comment errno 67 @c DO NOT REMOVE 720: This means that the per-user limit on new process would be exceeded by 721: an attempted @code{fork}. @xref{Limits on Resources}, for details on 722: the @code{RLIMIT_NPROC} limit. 723: @end deftypevr 724: 725: @comment errno.h 726: @comment BSD: Too many users 727: @deftypevr Macro int EUSERS 728: @comment errno 68 @c DO NOT REMOVE 729: The file quota system is confused because there are too many users. 730: @c This can probably happen in a GNU system when using NFS. 731: @end deftypevr 732: 733: @comment errno.h 734: @comment BSD: Disk quota exceeded 735: @deftypevr Macro int EDQUOT 736: @comment errno 69 @c DO NOT REMOVE 737: The user's disk quota was exceeded. 738: @end deftypevr 739: 740: @comment errno.h 741: @comment BSD: Stale NFS file handle 742: @deftypevr Macro int ESTALE 743: @comment errno 70 @c DO NOT REMOVE 744: Stale NFS file handle. This indicates an internal confusion in the NFS 745: system which is due to file system rearrangements on the server host. 746: Repairing this condition usually requires unmounting and remounting 747: the NFS file system on the local host. 748: @end deftypevr 749: 750: @comment errno.h 751: @comment BSD: Object is remote 752: @deftypevr Macro int EREMOTE 753: @comment errno 71 @c DO NOT REMOVE 754: An attempt was made to NFS-mount a remote file system with a file name that 755: already specifies an NFS-mounted file. 756: (This is an error on some operating systems, but we expect it to work 757: properly on the GNU system, making this error code impossible.) 758: @end deftypevr 759: 760: @comment errno.h 761: @comment BSD: RPC struct is bad 762: @deftypevr Macro int EBADRPC 763: @comment errno 72 @c DO NOT REMOVE 764: ??? 765: @end deftypevr 766: 767: @comment errno.h 768: @comment BSD: RPC version wrong 769: @deftypevr Macro int ERPCMISMATCH 770: @comment errno 73 @c DO NOT REMOVE 771: ??? 772: @end deftypevr 773: 774: @comment errno.h 775: @comment BSD: RPC program not available