GNU/Linux |
RedHat 6.2(Zoot) |
|
![]() |
errno(3) |
![]() |
errno − number of last error
#include <errno.h>
extern int errno;
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.
perror(3), strerror(3)
![]() |
errno(3) | ![]() |