errno.h

From Wikipedia, the free encyclopedia
(Redirected from ENOBUFS)

Template:Short description Template:C Standard Library

Page Template:Mono/styles.css has no content.<errno.h> is a header file in the standard library of the C programming language. It defines macros for reporting and retrieving error conditions using the symbol errno (short form for "error number").[1]

errno acts like an integer variable. A value (the error number) is stored in errno by certain library functions when they detect errors. At program startup, the value stored is zero. Library functions store only values greater than zero. Any library function can alter the value stored before return, whether or not they detect errors.[2] Most functions indicate that they detected an error by returning a special value, typically Page Template:Mono/styles.css has no content.NULL for functions that return pointers, and Page Template:Mono/styles.css has no content.-1 for functions that return integers. A few functions require the caller to preset errno to zero and test it afterwards to see if an error was detected.

The errno macro expands to an lvalue with type int, sometimes with the extern and/or volatile type specifiers depending upon the platform.[3] Originally this was a static memory location, but macros are almost always used today to allow for multi-threading, so that each thread will see its own thread-local error number.

The header file also defines macros that expand to integer constants that represent the error codes. The C standard library only requires three to be defined:[2]

Page Template:Mono/styles.css has no content.EDOM A parameter was outside a function's domain, e.g. sqrt(-1)
Page Template:Mono/styles.css has no content.ERANGE A result outside a function's range, e.g. strtol("0xfffffffff", NULL, 0) on systems with a 32-bit wide long
Page Template:Mono/styles.css has no content.EILSEQ (Required since 1994 Amendment 1 to C89 standard)[4]
Illegal byte sequence, e.g. mbstowcs(buf, "\xff", 1) on systems that use UTF-8.

POSIX compliant operating systems like AIX, Linux or Solaris include many other error values, many of which are used much more often than the above ones, such as EACCES for when a file cannot be opened for reading.[5] C++11 additionally defines many of the same values found within the POSIX specification.[6]

Traditionally, the first page of Unix system manuals, named intro(2), lists all errno.h macros, but this is not the case with Linux, where these macros are instead listed in the errno(3).Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

An errno can be translated to a descriptive string using Page Template:Mono/styles.css has no content.strerror (defined in Page Template:Mono/styles.css has no content.<string.h>) or a BSD extension called sys_errlist. The translation can be printed directly to the standard error stream using Page Template:Mono/styles.css has no content.perror (defined in Page Template:Mono/styles.css has no content.<stdio.h>). As strerror in many Unix-like systems is not thread-safe, a thread-safe version strerror_r is used, but conflicting definitions from POSIX and GNU makes it even less portable than the sys_errlist table.[7]

POSIX errors

The GNU C library (GLIBC) provides the additional POSIX error values macros in the header file Page Template:Mono/styles.css has no content.<errno.h>.[8] These are the descriptions of the macros provided by Page Template:Mono/styles.css has no content.strerror.

Symbol Value[9] Description
Page Template:Mono/styles.css has no content.EPERM Page Template:Mono/styles.css has no content.1 Operation not permitted
Page Template:Mono/styles.css has no content.ENOENT Page Template:Mono/styles.css has no content.2 No such file or directory
Page Template:Mono/styles.css has no content.ESRCH Page Template:Mono/styles.css has no content.3 No such process
Page Template:Mono/styles.css has no content.EINTR Page Template:Mono/styles.css has no content.4 Interrupted system call
Page Template:Mono/styles.css has no content.EIO Page Template:Mono/styles.css has no content.5 Input/output error
Page Template:Mono/styles.css has no content.ENXIO Page Template:Mono/styles.css has no content.6 No such device or address
Page Template:Mono/styles.css has no content.E2BIG Page Template:Mono/styles.css has no content.7 Argument list too long
Page Template:Mono/styles.css has no content.ENOEXEC Page Template:Mono/styles.css has no content.8 Exec format error
Page Template:Mono/styles.css has no content.EBADF Page Template:Mono/styles.css has no content.9 Bad file descriptor
Page Template:Mono/styles.css has no content.ECHILD Page Template:Mono/styles.css has no content.10 No child processes
Page Template:Mono/styles.css has no content.EAGAIN Page Template:Mono/styles.css has no content.11 Resource temporarily unavailable
Page Template:Mono/styles.css has no content.ENOMEM Page Template:Mono/styles.css has no content.12 Cannot allocate memory
Page Template:Mono/styles.css has no content.EACCES Page Template:Mono/styles.css has no content.13 Permission denied
Page Template:Mono/styles.css has no content.EFAULT Page Template:Mono/styles.css has no content.14 Bad address
Page Template:Mono/styles.css has no content.ENOTBLK Page Template:Mono/styles.css has no content.15 Block device required
Page Template:Mono/styles.css has no content.EBUSY Page Template:Mono/styles.css has no content.16 Device or resource busy
Page Template:Mono/styles.css has no content.EEXIST Page Template:Mono/styles.css has no content.17 File exists
Page Template:Mono/styles.css has no content.EXDEV Page Template:Mono/styles.css has no content.18 Invalid cross-device link
Page Template:Mono/styles.css has no content.ENODEV Page Template:Mono/styles.css has no content.19 No such device
Page Template:Mono/styles.css has no content.ENOTDIR Page Template:Mono/styles.css has no content.20 Not a directory
Page Template:Mono/styles.css has no content.EISDIR Page Template:Mono/styles.css has no content.21 Is a directory
Page Template:Mono/styles.css has no content.EINVAL Page Template:Mono/styles.css has no content.22 Invalid argument
Page Template:Mono/styles.css has no content.ENFILE Page Template:Mono/styles.css has no content.23 Too many open files in system
Page Template:Mono/styles.css has no content.EMFILE Page Template:Mono/styles.css has no content.24 Too many open files
Page Template:Mono/styles.css has no content.ENOTTY Page Template:Mono/styles.css has no content.25 Inappropriate ioctl for device
Page Template:Mono/styles.css has no content.ETXTBSY Page Template:Mono/styles.css has no content.26 Text file busy
Page Template:Mono/styles.css has no content.EFBIG Page Template:Mono/styles.css has no content.27 File too large
Page Template:Mono/styles.css has no content.ENOSPC Page Template:Mono/styles.css has no content.28 No space left on device
Page Template:Mono/styles.css has no content.ESPIPE Page Template:Mono/styles.css has no content.29 Illegal seek
Page Template:Mono/styles.css has no content.EROFS Page Template:Mono/styles.css has no content.30 Read-only file system
Page Template:Mono/styles.css has no content.EMLINK Page Template:Mono/styles.css has no content.31 Too many links
Page Template:Mono/styles.css has no content.EPIPE Page Template:Mono/styles.css has no content.32 Broken pipe
Page Template:Mono/styles.css has no content.EDOM Page Template:Mono/styles.css has no content.33 Numerical argument out of domain
Page Template:Mono/styles.css has no content.ERANGE Page Template:Mono/styles.css has no content.34 Numerical result out of range
Page Template:Mono/styles.css has no content.EDEADLK Page Template:Mono/styles.css has no content.35 Resource deadlock avoided
Page Template:Mono/styles.css has no content.ENAMETOOLONG Page Template:Mono/styles.css has no content.36 File name too long
Page Template:Mono/styles.css has no content.ENOLCK Page Template:Mono/styles.css has no content.37 No locks available
Page Template:Mono/styles.css has no content.ENOSYS Page Template:Mono/styles.css has no content.38 Function not implemented
Page Template:Mono/styles.css has no content.ENOTEMPTY Page Template:Mono/styles.css has no content.39 Directory not empty
Page Template:Mono/styles.css has no content.ELOOP Page Template:Mono/styles.css has no content.40 Too many levels of symbolic links
Page Template:Mono/styles.css has no content.ENOMSG Page Template:Mono/styles.css has no content.42 No message of desired type
Page Template:Mono/styles.css has no content.EIDRM Page Template:Mono/styles.css has no content.43 Identifier removed
Page Template:Mono/styles.css has no content.ECHRNG Page Template:Mono/styles.css has no content.44 Channel number out of range
Page Template:Mono/styles.css has no content.EL2NSYNC Page Template:Mono/styles.css has no content.45 Level 2 not synchronized
Page Template:Mono/styles.css has no content.EL3HLT Page Template:Mono/styles.css has no content.46 Level 3 halted
Page Template:Mono/styles.css has no content.EL3RST Page Template:Mono/styles.css has no content.47 Level 3 reset
Page Template:Mono/styles.css has no content.ELNRNG Page Template:Mono/styles.css has no content.48 Link number out of range
Page Template:Mono/styles.css has no content.EUNATCH Page Template:Mono/styles.css has no content.49 Protocol driver not attached
Page Template:Mono/styles.css has no content.ENOCSI Page Template:Mono/styles.css has no content.50 No CSI structure available
Page Template:Mono/styles.css has no content.EL2HLT Page Template:Mono/styles.css has no content.51 Level 2 halted
Page Template:Mono/styles.css has no content.EBADE Page Template:Mono/styles.css has no content.52 Invalid exchange
Page Template:Mono/styles.css has no content.EBADR Page Template:Mono/styles.css has no content.53 Invalid request descriptor
Page Template:Mono/styles.css has no content.EXFULL Page Template:Mono/styles.css has no content.54 Exchange full
Page Template:Mono/styles.css has no content.ENOANO Page Template:Mono/styles.css has no content.55 No anode
Page Template:Mono/styles.css has no content.EBADRQC Page Template:Mono/styles.css has no content.56 Invalid request code
Page Template:Mono/styles.css has no content.EBADSLT Page Template:Mono/styles.css has no content.57 Invalid slot
Page Template:Mono/styles.css has no content.EBFONT Page Template:Mono/styles.css has no content.59 Bad font file format
Page Template:Mono/styles.css has no content.ENOSTR Page Template:Mono/styles.css has no content.60 Device not a stream
Page Template:Mono/styles.css has no content.ENODATA Page Template:Mono/styles.css has no content.61 No data available
Page Template:Mono/styles.css has no content.ETIME Page Template:Mono/styles.css has no content.62 Timer expired
Page Template:Mono/styles.css has no content.ENOSR Page Template:Mono/styles.css has no content.63 Out of streams resources
Page Template:Mono/styles.css has no content.ENONET Page Template:Mono/styles.css has no content.64 Machine is not on the network
Page Template:Mono/styles.css has no content.ENOPKG Page Template:Mono/styles.css has no content.65 Package not installed
Page Template:Mono/styles.css has no content.EREMOTE Page Template:Mono/styles.css has no content.66 Object is remote
Page Template:Mono/styles.css has no content.ENOLINK Page Template:Mono/styles.css has no content.67 Link has been severed
Page Template:Mono/styles.css has no content.EADV Page Template:Mono/styles.css has no content.68 Advertise error
Page Template:Mono/styles.css has no content.ESRMNT Page Template:Mono/styles.css has no content.69 Srmount error
Page Template:Mono/styles.css has no content.ECOMM Page Template:Mono/styles.css has no content.70 Communication error on send
Page Template:Mono/styles.css has no content.EPROTO Page Template:Mono/styles.css has no content.71 Protocol error
Page Template:Mono/styles.css has no content.EMULTIHOP Page Template:Mono/styles.css has no content.72 Multihop attempted
Page Template:Mono/styles.css has no content.EDOTDOT Page Template:Mono/styles.css has no content.73 RFS specific error
Page Template:Mono/styles.css has no content.EBADMSG Page Template:Mono/styles.css has no content.74 Bad message
Page Template:Mono/styles.css has no content.EOVERFLOW Page Template:Mono/styles.css has no content.75 Value too large for defined data type
Page Template:Mono/styles.css has no content.ENOTUNIQ Page Template:Mono/styles.css has no content.76 Name not unique on network
Page Template:Mono/styles.css has no content.EBADFD Page Template:Mono/styles.css has no content.77 File descriptor in bad state
Page Template:Mono/styles.css has no content.EREMCHG Page Template:Mono/styles.css has no content.78 Remote address changed
Page Template:Mono/styles.css has no content.ELIBACC Page Template:Mono/styles.css has no content.79 Can not access a needed shared library
Page Template:Mono/styles.css has no content.ELIBBAD Page Template:Mono/styles.css has no content.80 Accessing a corrupted shared library
Page Template:Mono/styles.css has no content.ELIBSCN Page Template:Mono/styles.css has no content.81 Page Template:Mono/styles.css has no content..lib section in Page Template:Mono/styles.css has no content.a.out corrupted
Page Template:Mono/styles.css has no content.ELIBMAX Page Template:Mono/styles.css has no content.82 Attempting to link in too many shared libraries
Page Template:Mono/styles.css has no content.ELIBEXEC Page Template:Mono/styles.css has no content.83 Cannot exec a shared library directly
Page Template:Mono/styles.css has no content.EILSEQ Page Template:Mono/styles.css has no content.84 Invalid or incomplete multibyte or wide character
Page Template:Mono/styles.css has no content.ERESTART Page Template:Mono/styles.css has no content.85 Interrupted system call should be restarted
Page Template:Mono/styles.css has no content.ESTRPIPE Page Template:Mono/styles.css has no content.86 Streams pipe error
Page Template:Mono/styles.css has no content.EUSERS Page Template:Mono/styles.css has no content.87 Too many users
Page Template:Mono/styles.css has no content.ENOTSOCK Page Template:Mono/styles.css has no content.88 Socket operation on non-socket
Page Template:Mono/styles.css has no content.EDESTADDRREQ Page Template:Mono/styles.css has no content.89 Destination address required
Page Template:Mono/styles.css has no content.EMSGSIZE Page Template:Mono/styles.css has no content.90 Message too long
Page Template:Mono/styles.css has no content.EPROTOTYPE Page Template:Mono/styles.css has no content.91 Protocol wrong type for socket
Page Template:Mono/styles.css has no content.ENOPROTOOPT Page Template:Mono/styles.css has no content.92 Protocol not available
Page Template:Mono/styles.css has no content.EPROTONOSUPPORT Page Template:Mono/styles.css has no content.93 Protocol not supported
Page Template:Mono/styles.css has no content.ESOCKTNOSUPPORT Page Template:Mono/styles.css has no content.94 Socket type not supported
Page Template:Mono/styles.css has no content.EOPNOTSUPP Page Template:Mono/styles.css has no content.95 Operation not supported
Page Template:Mono/styles.css has no content.EPFNOSUPPORT Page Template:Mono/styles.css has no content.96 Protocol family not supported
Page Template:Mono/styles.css has no content.EAFNOSUPPORT Page Template:Mono/styles.css has no content.97 Address family not supported by protocol
Page Template:Mono/styles.css has no content.EADDRINUSE Page Template:Mono/styles.css has no content.98 Address already in use
Page Template:Mono/styles.css has no content.EADDRNOTAVAIL Page Template:Mono/styles.css has no content.99 Cannot assign requested address
Page Template:Mono/styles.css has no content.ENETDOWN Page Template:Mono/styles.css has no content.100 Network is down
Page Template:Mono/styles.css has no content.ENETUNREACH Page Template:Mono/styles.css has no content.101 Network is unreachable
Page Template:Mono/styles.css has no content.ENETRESET Page Template:Mono/styles.css has no content.102 Network dropped connection on reset
Page Template:Mono/styles.css has no content.ECONNABORTED Page Template:Mono/styles.css has no content.103 Software caused connection abort
Page Template:Mono/styles.css has no content.ECONNRESET Page Template:Mono/styles.css has no content.104 Connection reset by peer
Page Template:Mono/styles.css has no content.ENOBUFS Page Template:Mono/styles.css has no content.105 No buffer space available
Page Template:Mono/styles.css has no content.EISCONN Page Template:Mono/styles.css has no content.106 Transport endpoint is already connected
Page Template:Mono/styles.css has no content.ENOTCONN Page Template:Mono/styles.css has no content.107 Transport endpoint is not connected
Page Template:Mono/styles.css has no content.ESHUTDOWN Page Template:Mono/styles.css has no content.108 Cannot send after transport endpoint shutdown
Page Template:Mono/styles.css has no content.ETOOMANYREFS Page Template:Mono/styles.css has no content.109 Too many references: cannot splice
Page Template:Mono/styles.css has no content.ETIMEDOUT Page Template:Mono/styles.css has no content.110 Connection timed out
Page Template:Mono/styles.css has no content.ECONNREFUSED Page Template:Mono/styles.css has no content.111 Connection refused
Page Template:Mono/styles.css has no content.EHOSTDOWN Page Template:Mono/styles.css has no content.112 Host is down
Page Template:Mono/styles.css has no content.EHOSTUNREACH Page Template:Mono/styles.css has no content.113 No route to host
Page Template:Mono/styles.css has no content.EALREADY Page Template:Mono/styles.css has no content.114 Operation already in progress
Page Template:Mono/styles.css has no content.EINPROGRESS Page Template:Mono/styles.css has no content.115 Operation now in progress
Page Template:Mono/styles.css has no content.ESTALE Page Template:Mono/styles.css has no content.116 Stale file handle
Page Template:Mono/styles.css has no content.EUCLEAN Page Template:Mono/styles.css has no content.117 Structure needs cleaning
Page Template:Mono/styles.css has no content.ENOTNAM Page Template:Mono/styles.css has no content.118 Not a Xenix named type file
Page Template:Mono/styles.css has no content.ENAVAIL Page Template:Mono/styles.css has no content.119 No Xenix semaphores available
Page Template:Mono/styles.css has no content.EISNAM Page Template:Mono/styles.css has no content.120 Is a named type file
Page Template:Mono/styles.css has no content.EREMOTEIO Page Template:Mono/styles.css has no content.121 Remote I/O error
Page Template:Mono/styles.css has no content.EDQUOT Page Template:Mono/styles.css has no content.122 Disk quota exceeded
Page Template:Mono/styles.css has no content.ENOMEDIUM Page Template:Mono/styles.css has no content.123 No medium found
Page Template:Mono/styles.css has no content.EMEDIUMTYPE Page Template:Mono/styles.css has no content.124 Wrong medium type
Page Template:Mono/styles.css has no content.ECANCELED Page Template:Mono/styles.css has no content.125 Operation canceled
Page Template:Mono/styles.css has no content.ENOKEY Page Template:Mono/styles.css has no content.126 Required key not available
Page Template:Mono/styles.css has no content.EKEYEXPIRED Page Template:Mono/styles.css has no content.127 Key has expired
Page Template:Mono/styles.css has no content.EKEYREVOKED Page Template:Mono/styles.css has no content.128 Key has been revoked
Page Template:Mono/styles.css has no content.EKEYREJECTED Page Template:Mono/styles.css has no content.129 Key was rejected by service
Page Template:Mono/styles.css has no content.EOWNERDEAD Page Template:Mono/styles.css has no content.130 Owner died
Page Template:Mono/styles.css has no content.ENOTRECOVERABLE Page Template:Mono/styles.css has no content.131 State not recoverable
Page Template:Mono/styles.css has no content.ERFKILL Page Template:Mono/styles.css has no content.132 Operation not possible due to RF-kill
Page Template:Mono/styles.css has no content.EHWPOISON Page Template:Mono/styles.css has no content.133 Memory page has hardware error
Page Template:Mono/styles.css has no content.ENOTSUP Page Template:Mono/styles.css has no content.134 Not supported parameter or option
Page Template:Mono/styles.css has no content.ENOMEDIUM Page Template:Mono/styles.css has no content.135 Missing media
Page Template:Mono/styles.css has no content.EILSEQ Page Template:Mono/styles.css has no content.138 Invalid multibyte sequence
Page Template:Mono/styles.css has no content.EOVERFLOW Page Template:Mono/styles.css has no content.139 Value too large
Page Template:Mono/styles.css has no content.ECANCELED Page Template:Mono/styles.css has no content.140 Asynchronous operation stopped before normal completion
Page Template:Mono/styles.css has no content.ENOTRECOVERABLE Page Template:Mono/styles.css has no content.141 State not recoverable
Page Template:Mono/styles.css has no content.EOWNERDEAD Page Template:Mono/styles.css has no content.142 Previous owner died
Page Template:Mono/styles.css has no content.ESTRPIPE Page Template:Mono/styles.css has no content.143 Streams pipe error

The macro names and meanings for error codes are defined in the POSIX Standards definition however the numeric values are NOT, though by convention the values appear to be the same across different versions of Unix.[citation needed] Programs should not rely on specific numeric values and should test code using the macro names specified in the ERRORS section of the man page of the associated function. For source code readability and portability the use of the standard macro names in code is highly recommended.[10][11]

See also

References

Page Template:Reflist/styles.css has no content.

  1. ^ International Standard for Programming Language C (C11), ISO/IEC 9899:2011, p. 205
  2. ^ a b International Standard for Programming Language C (C99), ISO/IEC 9899:1999, p. 186
  3. ^ Page Module:Citation/CS1/styles.css has no content."Checking for Errors". The GNU C Library (glibc). GNU Project. 2014-02-08. Retrieved 2014-06-25.
  4. ^ Page Module:Citation/CS1/styles.css has no content."A brief description of Normative Addendum 1". Retrieved 2013-09-12.
  5. ^ Template:Man
  6. ^ Page Module:Citation/CS1/styles.css has no content."Error numbers - cppreference.com". Retrieved 2015-05-08.
  7. ^ Page Module:Citation/CS1/styles.css has no content.McCabe, Colin. "The problem with strerror". www.club.cc.cmu.edu.
  8. ^ Page Module:Citation/CS1/styles.css has no content."Error Codes (The GNU C Library)". www.gnu.org. Mar 29, 2025. Retrieved Apr 5, 2025.
  9. ^ Page Module:Citation/CS1/styles.css has no content."Debugging: POSIX errors". particle.io. Retrieved Apr 5, 2025.
  10. ^ Page Module:Citation/CS1/styles.css has no content."Checking for Errors". gnu.org. Free Software Foundation. Jan 26, 2025. Retrieved Apr 6, 2025.
  11. ^ Page Module:Citation/CS1/styles.css has no content.Pappas, Brent; Gazzillo, Paul (2024). "Semantic Analysis of Macro Usage for Portability". Proceedings of the IEEE/ACM 46th International Conference on Software Engineering. pp. 1–12. arXiv:2401.10422. doi:10.1145/3597503.3623323. ISBN 979-8-4007-0217-4.

Bibliography