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)