ERRNO
Section: Library functions (3)
Updated: 30 March 1998
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 (1996 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
- EAGAIN
-
Resource temporarily unavailable
- EBADF
-
Bad file descriptor
- EBADMSG
-
Bad message
- EBUSY
-
Resource busy
- ECANCELED
-
Operation canceled
- ECHILD
-
No child processes
- EDEADLK
-
Resource deadlock avoided
- EDOM
-
Domain error
- EEXIST
-
File exists
- EFAULT
-
Bad address
- EFBIG
-
File too large
- EINPROGRESS
-
Operation in progress
- EINTR
-
Interrupted function call
- EINVAL
-
Invalid argument
- EIO
-
Input/output error
- EISDIR
-
Is a directory
- EMFILE
-
Too many open files
- EMLINK
-
Too many links
- EMSGSIZE
-
Inappropriate message buffer length
- ENAMETOOLONG
-
Filename too long
- ENFILE
-
Too many open files in system
- ENODEV
-
No such device
- ENOENT
-
No such file or directory
- ENOEXEC
-
Exec format error
- ENOLCK
-
No locks available
- ENOMEM
-
Not enough space
- ENOSPC
-
No space left on device
- ENOSYS
-
Function not implemented
- ENOTDIR
-
Not a directory
- ENOTEMPTY
-
Directory not empty
- ENOTSUP
-
Not supported
- ENOTTY
-
Inappropriate I/O control operation
- ENXIO
-
No such device or address
- EPERM
-
Operation not permitted
- EPIPE
-
Broken pipe
- ERANGE
-
Result too large
- EROFS
-
Read-only file system
- ESPIPE
-
Invalid seek
- ESRCH
-
No such process
- ETIMEDOUT
-
Operation timed out
- EXDEV
-
Improper link
Many other error numbers are returned by various Unix implementations.
System V returns ETXTBSY (Text file busy) if one tries to exec() a file
that is currently open for writing. Linux also returns this error
if one tries to have a file both memory mapped with VM_DENYWRITE
and open for writing.
SEE ALSO
perror(3),
strerror(3)