ERNO(3) Library functions ERNO(3) NAME errno - number of last error SYNOPSIS #include 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 multi- byte or wide characters. E2BIG Arg list too long EACES 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) 1998-03-30 ERNO(3)