| ERRNO(3) | Library functions | ERRNO(3) |
NAME
errno - number of last error
SYNOPSIS
#include <errno.h>
extern int errno;
DESCRIPTION
The integer errno is set by system calls (and some library functions) to indicate what went wrong. Its value is significant only when the call returned an error (usually -1), and a library function that does succeed is allowed to change errno.
Sometimes, when -1 is also a legal return value one has to zero errno before the call in order to detect possible errors.
errno is defined by the ISO C standard to be a modifiable lvalue of type int, and must not be explicitly declared; errno may be a macro. errno is thread-local; setting it in one thread does not affect its value in any other thread.
Valid error numbers are all non-zero; errno is never set to zero by any library function. All the error names specified by POSIX.1 must have distinct values.
POSIX.1 (2001 edition) lists the following symbolic error names. Of these, EDOM and ERANGE are in the ISO C standard. ISO C Amendment 1 defines the additional error number EILSEQ for coding errors in multibyte or wide characters.
- E2BIG
- Arg list too long
- EACCES
- Permission denied
- EADDRINUSE
- Address in use
- EADDRNOTAVAIL
- Address not available
- EAFNOSUPPORT
- Address family not supported
- EAGAIN
- Resource temporarily unavailable
- EALREADY
- Connection already in progress
- EBADF
- Bad file descriptor
- EBADMSG
- Bad message
- EBUSY
- Resource busy
- ECANCELED
- Operation canceled
- ECHILD
- No child processes
- ECONNABORTED
- Connection aborted
- ECONNREFUSED
- Connection refused
- ECONNRESET
- Connection reset
- EDEADLK
- Resource deadlock avoided
- EDESTADDRREQ
- Destination address required
- EDOM
- Domain error
- EDQUOT
- Reserved
- EEXIST
- File exists
- EFAULT
- Bad address
- EFBIG
- File too large
- EHOSTUNREACH
- Host is unreachable
- EIDRM
- Identifier removed
- EILSEQ
- Illegal byte sequence
- EINPROGRESS
- Operation in progress
- EINTR
- Interrupted function call
- EINVAL
- Invalid argument
- EIO
- Input/output error
- EISCONN
- Socket is connected
- EISDIR
- Is a directory
- ELOOP
- Too many levels of symbolic links
- EMFILE
- Too many open files
- EMLINK
- Too many links
- EMSGSIZE
- Inappropriate message buffer length
- EMULTIHOP
- Reserved
- ENAMETOOLONG
- Filename too long
- ENETDOWN
- Network is down
- ENETRESET
- Connection aborted by network
- ENETUNREACH
- Network unreachable
- ENFILE
- Too many open files in system
- ENOBUFS
- No buffer space available
- ENODATA
- No message is available on the STREAM head read queue
- ENODEV
- No such device
- ENOENT
- No such file or directory
- ENOEXEC
- Exec format error
- ENOLCK
- No locks available
- ENOLINK
- Reserved
- ENOMEM
- Not enough space
- ENOMSG
- No message of the desired type
- ENOPROTOOPT
- Protocol not available
- ENOSPC
- No space left on device
- ENOSR
- No STREAM resources
- ENOSTR
- Not a STREAM
- ENOSYS
- Function not implemented
- ENOTCONN
- The socket is not connected
- ENOTDIR
- Not a directory
- ENOTEMPTY
- Directory not empty
- ENOTSOCK
- Not a socket
- ENOTSUP
- Not supported
- ENOTTY
- Inappropriate I/O control operation
- ENXIO
- No such device or address
- EOPNOTSUPP
- Operation not supported on socket
- EOVERFLOW
- Value too large to be stored in data type
- EPERM
- Operation not permitted
- EPIPE
- Broken pipe
- EPROTO
- Protocol error
- EPROTONOSUPPORT
- Protocol not supported
- EPROTOTYPE
- Protocol wrong type for socket
- ERANGE
- Result too large
- EROFS
- Read-only file system
- ESPIPE
- Invalid seek
- ESRCH
- No such process
- ESTALE
- Reserved
- ETIME
- STREAM ioctl() timeout
- ETIMEDOUT
- Operation timed out
- ETXTBSY
- Text file busy
- EWOULDBLOCK
- Operation would block (may be same value as EAGAIN)
- EXDEV
- Improper link
NOTE
A common mistake is to do
if (somecall() == -1) {
printf("somecall() failed\n");
if (errno == ...) { ... }
}
if (somecall() == -1) {
int errsv = errno;
printf("somecall() failed\n");
if (errsv == ...) { ... }
}
SEE ALSO
| 2002-10-05 |
Different Versions of this Page:
- Version 6.17 (latest)
- Version 6.16
- Version 6.15
- Version 6.14
- Version 6.13
- Version 6.12
- Version 6.11
- Version 6.10
- Version 6.9.1
- Version 6.9
- Version 6.8
- Version 6.7
- Version 6.06
- Version 6.05.01
- Version 6.05
- Version 6.04
- Version 6.03
- Version 6.02
- Version 6.01
- Version 6.00
- Version 5.13
- Version 5.12
- Version 5.11
- Version 5.10
- Version 5.09
- Version 5.08
- Version 5.07
- Version 5.06
- Version 5.05
- Version 5.04
- Version 5.03
- Version 5.02
- Version 5.01
- Version 5.00
- Version 4.16
- Version 4.15
- Version 4.14
- Version 4.13
- Version 4.12
- Version 4.10
- Version 4.09
- Version 4.08
- Version 4.07
- Version 4.06
- Version 4.05
- Version 4.04
- Version 4.03
- Version 4.02
- Version 4.01
- Version 4.00
- Version 3.83
- Version 3.82
- Version 3.81
- Version 3.80
- Version 3.79
- Version 3.78
- Version 3.77
- Version 3.76
- Version 3.75
- Version 3.74
- Version 3.73
- Version 3.72
- Version 3.71
- Version 3.70
- Version 3.69
- Version 3.68
- Version 3.67
- Version 3.66
- Version 3.65
- Version 3.64
- Version 3.63
- Version 3.62
- Version 3.61
- Version 3.60
- Version 3.59
- Version 3.58
- Version 3.57
- Version 3.56
- Version 3.55
- Version 3.54
- Version 3.53
- Version 3.52
- Version 3.49
- Version 3.48
- Version 3.47
- Version 3.46
- Version 3.45
- Version 3.44
- Version 3.43
- Version 3.42
- Version 3.41
- Version 3.40
- Version 3.39
- Version 3.38
- Version 3.37
- Version 3.36
- Version 3.35
- Version 3.34
- Version 3.33
- Version 3.32
- Version 3.31
- Version 3.30
- Version 3.29
- Version 3.28
- Version 3.27
- Version 3.26
- Version 3.25
- Version 3.24
- Version 3.23
- Version 3.22
- Version 3.21
- Version 3.20
- Version 3.17
- Version 3.16
- Version 3.15
- Version 3.14
- Version 3.13
- Version 3.12
- Version 3.11
- Version 3.10
- Version 3.09
- Version 3.08
- Version 3.07
- Version 3.06
- Version 3.05
- Version 3.04
- Version 3.03
- Version 3.02
- Version 3.01
- Version 3.00
- Version 2.80
- Version 2.79
- Version 2.78
- Version 2.77
- Version 2.76
- Version 2.75
- Version 2.74
- Version 2.73
- Version 2.72
- Version 2.71
- Version 2.70
- Version 2.69
- Version 2.68
- Version 2.67
- Version 2.66
- Version 2.65
- Version 2.64
- Version 2.63
- Version 2.62
- Version 2.61
- Version 2.60
- Version 2.59
- Version 2.58
- Version 2.57
- Version 2.56
- Version 2.55
- Version 2.54
- Version 2.53
- Version 2.52
- Version 2.51
- Version 2.50
- Version 2.49
- Version 2.48
- Version 2.47
- Version 2.46
- Version 2.45
- Version 2.44
- Version 2.43
- Version 2.42
- Version 2.41
- Version 2.40
- Version 2.39
- Version 2.38
- Version 2.37
- Version 2.36
- Version 2.35
- Version 2.34
- Version 2.33
- Version 2.32
- Version 2.31
- Version 2.30
- Version 2.29
- Version 2.28
- Version 2.27
- Version 2.26
- Version 2.25
- Version 2.24
- Version 2.23
- Version 2.22
- Version 2.21
- Version 2.20
- Version 2.19
- Version 2.18
- Version 2.17
- Version 2.16
- Version 2.15
- Version 2.14
- Version 2.13
- Version 2.12
- Version 2.11
- Version 2.10
- Version 2.09
- Version 2.08
- Version 2.07
- Version 2.06
- Version 2.05
- Version 2.04
- Version 2.03
- Version 2.02
- Version 2.01
- Version 2.00