NAME

POSIX::1003::Errno - all error codes defined by the OS

SYNOPSIS

use POSIX::1003::Errno; # load all names

use POSIX::1003::Errno qw(errno);
# keys are strings!
$ticks = errno('EPERM');

use POSIX::1003::Errno qw(errno EPERM);
if($!==EPERM) ...

use POSIX::1003::Errno '%errno';
my $key = $errno{EPERM};
$errno{EUNKNOWN} = 1024;
$ticks  = errno('EUNKNOWN');

print "$_\n" for keys %errno;

DESCRIPTION

The error codes provided by your operating system.

The code modules Errno and POSIX do also contain an extensive list of error numbers. However: Errno have their values hard-coded, which is incorrect (higher numbered codes may [do!] differ per platform). POSIX only provides a limited subset.

METHODS

FUNCTIONS

Standard POSIX

strerror(ERRNO)

Returns the string representations of the ERRNO, as provided by the operating system.

Additional

errno(NAME)

Returns the errno value related to the NAMEd constant. The NAME must be a string. undef will be returned when the NAME is not known by the system.

example:

my $ticks = errno('EPERM') || 1000;
errno_names()

Returns a list with all known names, unsorted.

CONSTANTS

%errno

This exported variable is a tied HASH which maps E* names on numbers, to be used with the system's errno() function.

The following error names where detected on your system when the module got installed. The second column shows the related value. Followed by the text that strerror() produces for that error.

E2BIG            7    Argument list too long
EACCES           13   Permission denied
EADDRINUSE       98   Address already in use
EADDRNOTAVAIL    99   Cannot assign requested address
EADV             68   Advertise error
EAFNOSUPPORT     97   Address family not supported by protocol
EAGAIN           11   Resource temporarily unavailable
EALREADY         114  Operation already in progress
EBADE            52   Invalid exchange
EBADF            9    Bad file descriptor
EBADFD           77   File descriptor in bad state
EBADMSG          74   Bad message
EBADR            53   Invalid request descriptor
EBADRQC          56   Invalid request code
EBADSLT          57   Invalid slot
EBFONT           59   Bad font file format
EBUSY            16   Device or resource busy
ECANCELED        125  Operation canceled
ECHILD           10   No child processes
ECHRNG           44   Channel number out of range
ECOMM            70   Communication error on send
ECONNABORTED     103  Software caused connection abort
ECONNREFUSED     111  Connection refused
ECONNRESET       104  Connection reset by peer
EDEADLK          35   Resource deadlock avoided
EDEADLOCK        35   Resource deadlock avoided
EDESTADDRREQ     89   Destination address required
EDOM             33   Numerical argument out of domain
EDOTDOT          73   RFS specific error
EDQUOT           122  Disk quota exceeded
EEXIST           17   File exists
EFAULT           14   Bad address
EFBIG            27   File too large
EHOSTDOWN        112  Host is down
EHOSTUNREACH     113  No route to host
EHWPOISON        133  Unknown error 133
EIDRM            43   Identifier removed
EILSEQ           84   Invalid or incomplete multibyte or wide character
EINPROGRESS      115  Operation now in progress
EINTR            4    Interrupted system call
EINVAL           22   Invalid argument
EIO              5    Input/output error
EISCONN          106  Transport endpoint is already connected
EISDIR           21   Is a directory
EISNAM           120  Is a named type file
EKEYEXPIRED      127  Key has expired
EKEYREJECTED     129  Key was rejected by service
EKEYREVOKED      128  Key has been revoked
EL2HLT           51   Level 2 halted
EL2NSYNC         45   Level 2 not synchronized
EL3HLT           46   Level 3 halted
EL3RST           47   Level 3 reset
ELIBACC          79   Can not access a needed shared library
ELIBBAD          80   Accessing a corrupted shared library
ELIBEXEC         83   Cannot exec a shared library directly
ELIBMAX          82   Attempting to link in too many shared libraries
ELIBSCN          81   .lib section in a.out corrupted
ELNRNG           48   Link number out of range
ELOOP            40   Too many levels of symbolic links
EMEDIUMTYPE      124  Wrong medium type
EMFILE           24   Too many open files
EMLINK           31   Too many links
EMSGSIZE         90   Message too long
EMULTIHOP        72   Multihop attempted
ENAMETOOLONG     36   File name too long
ENAVAIL          119  No XENIX semaphores available
ENETDOWN         100  Network is down
ENETRESET        102  Network dropped connection on reset
ENETUNREACH      101  Network is unreachable
ENFILE           23   Too many open files in system
ENOANO           55   No anode
ENOBUFS          105  No buffer space available
ENOCSI           50   No CSI structure available
ENODATA          61   No data available
ENODEV           19   No such device
ENOENT           2    No such file or directory
ENOEXEC          8    Exec format error
ENOKEY           126  Required key not available
ENOLCK           37   No locks available
ENOLINK          67   Link has been severed
ENOMEDIUM        123  No medium found
ENOMEM           12   Cannot allocate memory
ENOMSG           42   No message of desired type
ENONET           64   Machine is not on the network
ENOPKG           65   Package not installed
ENOPROTOOPT      92   Protocol not available
ENOSPC           28   No space left on device
ENOSR            63   Out of streams resources
ENOSTR           60   Device not a stream
ENOSYS           38   Function not implemented
ENOTBLK          15   Block device required
ENOTCONN         107  Transport endpoint is not connected
ENOTDIR          20   Not a directory
ENOTEMPTY        39   Directory not empty
ENOTNAM          118  Not a XENIX named type file
ENOTRECOVERABLE  131  State not recoverable
ENOTSOCK         88   Socket operation on non-socket
ENOTSUP          95   Operation not supported
ENOTTY           25   Inappropriate ioctl for device
ENOTUNIQ         76   Name not unique on network
ENXIO            6    No such device or address
EOPNOTSUPP       95   Operation not supported
EOVERFLOW        75   Value too large for defined data type
EOWNERDEAD       130  Owner died
EPERM            1    Operation not permitted
EPFNOSUPPORT     96   Protocol family not supported
EPIPE            32   Broken pipe
EPROTO           71   Protocol error
EPROTONOSUPPORT  93   Protocol not supported
EPROTOTYPE       91   Protocol wrong type for socket
ERANGE           34   Numerical result out of range
EREMCHG          78   Remote address changed
EREMOTE          66   Object is remote
EREMOTEIO        121  Remote I/O error
ERESTART         85   Interrupted system call should be restarted
ERFKILL          132  Operation not possible due to RF-kill
EROFS            30   Read-only file system
ESHUTDOWN        108  Cannot send after transport endpoint shutdown
ESOCKTNOSUPPORT  94   Socket type not supported
ESPIPE           29   Illegal seek
ESRCH            3    No such process
ESRMNT           69   Srmount error
ESTALE           116  Stale NFS file handle
ESTRPIPE         86   Streams pipe error
ETIME            62   Timer expired
ETIMEDOUT        110  Connection timed out
ETOOMANYREFS     109  Too many references: cannot splice
ETXTBSY          26   Text file busy
EUCLEAN          117  Structure needs cleaning
EUNATCH          49   Protocol driver not attached
EUSERS           87   Too many users
EWOULDBLOCK      11   Resource temporarily unavailable
EXDEV            18   Invalid cross-device link
EXFULL           54   Exchange full

SEE ALSO

This module is part of POSIX-1003 distribution version 0.95.1, built on August 26, 2013. Website: http://perl.overmeer.net. The code is based on POSIX, which is released with Perl itself. See also POSIX::Util for additional functionality.

COPYRIGHTS

Copyrights 2011-2013 on the perl code and the related documentation by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html