123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- # -*- buffer-read-only: t -*-
- #
- # This file is auto-generated. ***ANY*** changes here will be lost
- #
- package Errno;
- require Exporter;
- use strict;
- our $VERSION = "1.23";
- $VERSION = eval $VERSION;
- our @ISA = 'Exporter';
- my %err;
- BEGIN {
- %err = (
- EPERM => 1,
- ENOENT => 2,
- ESRCH => 3,
- EINTR => 4,
- EIO => 5,
- ENXIO => 6,
- E2BIG => 7,
- ENOEXEC => 8,
- EBADF => 9,
- ECHILD => 10,
- EAGAIN => 11,
- EWOULDBLOCK => 11,
- ENOMEM => 12,
- EACCES => 13,
- EFAULT => 14,
- ENOTBLK => 15,
- EBUSY => 16,
- EEXIST => 17,
- EXDEV => 18,
- ENODEV => 19,
- ENOTDIR => 20,
- EISDIR => 21,
- EINVAL => 22,
- ENFILE => 23,
- EMFILE => 24,
- ENOTTY => 25,
- ETXTBSY => 26,
- EFBIG => 27,
- ENOSPC => 28,
- ESPIPE => 29,
- EROFS => 30,
- EMLINK => 31,
- EPIPE => 32,
- EDOM => 33,
- ERANGE => 34,
- EDEADLK => 35,
- EDEADLOCK => 35,
- ENAMETOOLONG => 36,
- ENOLCK => 37,
- ENOSYS => 38,
- ENOTEMPTY => 39,
- ELOOP => 40,
- ENOMSG => 42,
- EIDRM => 43,
- ECHRNG => 44,
- EL2NSYNC => 45,
- EL3HLT => 46,
- EL3RST => 47,
- ELNRNG => 48,
- EUNATCH => 49,
- ENOCSI => 50,
- EL2HLT => 51,
- EBADE => 52,
- EBADR => 53,
- EXFULL => 54,
- ENOANO => 55,
- EBADRQC => 56,
- EBADSLT => 57,
- EBFONT => 59,
- ENOSTR => 60,
- ENODATA => 61,
- ETIME => 62,
- ENOSR => 63,
- ENONET => 64,
- ENOPKG => 65,
- EREMOTE => 66,
- ENOLINK => 67,
- EADV => 68,
- ESRMNT => 69,
- ECOMM => 70,
- EPROTO => 71,
- EMULTIHOP => 72,
- EDOTDOT => 73,
- EBADMSG => 74,
- EOVERFLOW => 75,
- ENOTUNIQ => 76,
- EBADFD => 77,
- EREMCHG => 78,
- ELIBACC => 79,
- ELIBBAD => 80,
- ELIBSCN => 81,
- ELIBMAX => 82,
- ELIBEXEC => 83,
- EILSEQ => 84,
- ERESTART => 85,
- ESTRPIPE => 86,
- EUSERS => 87,
- ENOTSOCK => 88,
- EDESTADDRREQ => 89,
- EMSGSIZE => 90,
- EPROTOTYPE => 91,
- ENOPROTOOPT => 92,
- EPROTONOSUPPORT => 93,
- ESOCKTNOSUPPORT => 94,
- ENOTSUP => 95,
- EOPNOTSUPP => 95,
- EPFNOSUPPORT => 96,
- EAFNOSUPPORT => 97,
- EADDRINUSE => 98,
- EADDRNOTAVAIL => 99,
- ENETDOWN => 100,
- ENETUNREACH => 101,
- ENETRESET => 102,
- ECONNABORTED => 103,
- ECONNRESET => 104,
- ENOBUFS => 105,
- EISCONN => 106,
- ENOTCONN => 107,
- ESHUTDOWN => 108,
- ETOOMANYREFS => 109,
- ETIMEDOUT => 110,
- ECONNREFUSED => 111,
- EHOSTDOWN => 112,
- EHOSTUNREACH => 113,
- EALREADY => 114,
- EINPROGRESS => 115,
- ESTALE => 116,
- EUCLEAN => 117,
- ENOTNAM => 118,
- ENAVAIL => 119,
- EISNAM => 120,
- EREMOTEIO => 121,
- EDQUOT => 122,
- ENOMEDIUM => 123,
- EMEDIUMTYPE => 124,
- ECANCELED => 125,
- ENOKEY => 126,
- EKEYEXPIRED => 127,
- EKEYREVOKED => 128,
- EKEYREJECTED => 129,
- EOWNERDEAD => 130,
- ENOTRECOVERABLE => 131,
- ERFKILL => 132,
- EHWPOISON => 133,
- );
- # Generate proxy constant subroutines for all the values.
- # Well, almost all the values. Unfortunately we can't assume that at this
- # point that our symbol table is empty, as code such as if the parser has
- # seen code such as C<exists &Errno::EINVAL>, it will have created the
- # typeglob.
- # Doing this before defining @EXPORT_OK etc means that even if a platform is
- # crazy enough to define EXPORT_OK as an error constant, everything will
- # still work, because the parser will upgrade the PCS to a real typeglob.
- # We rely on the subroutine definitions below to update the internal caches.
- # Don't use %each, as we don't want a copy of the value.
- foreach my $name (keys %err) {
- if ($Errno::{$name}) {
- # We expect this to be reached fairly rarely, so take an approach
- # which uses the least compile time effort in the common case:
- eval "sub $name() { $err{$name} }; 1" or die $@;
- } else {
- $Errno::{$name} = \$err{$name};
- }
- }
- }
- our @EXPORT_OK = keys %err;
- our %EXPORT_TAGS = (
- POSIX => [qw(
- E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY
- EBADF EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK
- EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH
- EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK
- EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS
- ENODEV ENOENT ENOEXEC ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK
- ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM
- EPFNOSUPPORT EPIPE EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART
- EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT
- ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV
- )]
- );
- sub TIEHASH { bless \%err }
- sub FETCH {
- my (undef, $errname) = @_;
- return "" unless exists $err{$errname};
- my $errno = $err{$errname};
- return $errno == $! ? $errno : 0;
- }
- sub STORE {
- require Carp;
- Carp::confess("ERRNO hash is read only!");
- }
- *CLEAR = *DELETE = \*STORE; # Typeglob aliasing uses less space
- sub NEXTKEY {
- each %err;
- }
- sub FIRSTKEY {
- my $s = scalar keys %err; # initialize iterator
- each %err;
- }
- sub EXISTS {
- my (undef, $errname) = @_;
- exists $err{$errname};
- }
- tie %!, __PACKAGE__; # Returns an object, objects are true.
- __END__
- =head1 NAME
- Errno - System errno constants
- =head1 SYNOPSIS
- use Errno qw(EINTR EIO :POSIX);
- =head1 DESCRIPTION
- C<Errno> defines and conditionally exports all the error constants
- defined in your system C<errno.h> include file. It has a single export
- tag, C<:POSIX>, which will export all POSIX defined error numbers.
- C<Errno> also makes C<%!> magic such that each element of C<%!> has a
- non-zero value only if C<$!> is set to that value. For example:
- use Errno;
- unless (open(FH, "/fangorn/spouse")) {
- if ($!{ENOENT}) {
- warn "Get a wife!\n";
- } else {
- warn "This path is barred: $!";
- }
- }
- If a specified constant C<EFOO> does not exist on the system, C<$!{EFOO}>
- returns C<"">. You may use C<exists $!{EFOO}> to check whether the
- constant is available on the system.
- =head1 CAVEATS
- Importing a particular constant may not be very portable, because the
- import will fail on platforms that do not have that constant. A more
- portable way to set C<$!> to a valid value is to use:
- if (exists &Errno::EFOO) {
- $! = &Errno::EFOO;
- }
- =head1 AUTHOR
- Graham Barr <gbarr@pobox.com>
- =head1 COPYRIGHT
- Copyright (c) 1997-8 Graham Barr. All rights reserved.
- This program is free software; you can redistribute it and/or modify it
- under the same terms as Perl itself.
- =cut
- # ex: set ro:
|