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 signi-
ficant 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)