(linenum→info "unix/slp.c:2238")

glibc/2.7/manual/errno.texi

    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