You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
4.1 KiB
172 lines
4.1 KiB
#
|
|
# This file is auto-generated. ***ANY*** changes here will be lost
|
|
#
|
|
|
|
package Errno;
|
|
use vars qw(@EXPORT_OK %EXPORT_TAGS @ISA $VERSION %errno $AUTOLOAD);
|
|
use Exporter ();
|
|
use Config;
|
|
use strict;
|
|
|
|
"$Config{'archname'}-$Config{'osvers'}" eq
|
|
"MSWin32-x86-multi-thread-4.0" or
|
|
die "Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
|
|
|
|
$VERSION = "1.111";
|
|
@ISA = qw(Exporter);
|
|
|
|
@EXPORT_OK = qw(ENFILE EACCES EPERM EPIPE ERANGE ENOSPC ESPIPE
|
|
EDEADLOCK ENOMEM ENOTTY ENOSYS EAGAIN EXDEV ECHILD ENOTDIR ESRCH
|
|
EISDIR EROFS EEXIST ENODEV EBADF EMLINK EINVAL ENOLCK ENXIO
|
|
ENAMETOOLONG E2BIG EBUSY ENOENT EINTR ENOTEMPTY EDOM EDEADLK EIO
|
|
EFAULT EFBIG ENOEXEC EMFILE EILSEQ);
|
|
|
|
%EXPORT_TAGS = (
|
|
POSIX => [qw(
|
|
E2BIG EACCES EAGAIN EBADF EBUSY ECHILD EDEADLK EDOM EEXIST EFAULT
|
|
EFBIG EINTR EINVAL EIO EISDIR EMFILE EMLINK ENAMETOOLONG ENFILE ENODEV
|
|
ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS ENOTDIR ENOTEMPTY ENOTTY
|
|
ENXIO EPERM EPIPE ERANGE EROFS ESPIPE ESRCH EXDEV
|
|
)]
|
|
);
|
|
|
|
sub EPERM () { 1 }
|
|
sub ENOENT () { 2 }
|
|
sub ESRCH () { 3 }
|
|
sub EINTR () { 4 }
|
|
sub EIO () { 5 }
|
|
sub ENXIO () { 6 }
|
|
sub E2BIG () { 7 }
|
|
sub ENOEXEC () { 8 }
|
|
sub EBADF () { 9 }
|
|
sub ECHILD () { 10 }
|
|
sub EAGAIN () { 11 }
|
|
sub ENOMEM () { 12 }
|
|
sub EACCES () { 13 }
|
|
sub EFAULT () { 14 }
|
|
sub EBUSY () { 16 }
|
|
sub EEXIST () { 17 }
|
|
sub EXDEV () { 18 }
|
|
sub ENODEV () { 19 }
|
|
sub ENOTDIR () { 20 }
|
|
sub EISDIR () { 21 }
|
|
sub EINVAL () { 22 }
|
|
sub ENFILE () { 23 }
|
|
sub EMFILE () { 24 }
|
|
sub ENOTTY () { 25 }
|
|
sub EFBIG () { 27 }
|
|
sub ENOSPC () { 28 }
|
|
sub ESPIPE () { 29 }
|
|
sub EROFS () { 30 }
|
|
sub EMLINK () { 31 }
|
|
sub EPIPE () { 32 }
|
|
sub EDOM () { 33 }
|
|
sub ERANGE () { 34 }
|
|
sub EDEADLK () { 36 }
|
|
sub EDEADLOCK () { 36 }
|
|
sub ENAMETOOLONG () { 38 }
|
|
sub ENOLCK () { 39 }
|
|
sub ENOSYS () { 40 }
|
|
sub ENOTEMPTY () { 41 }
|
|
sub EILSEQ () { 42 }
|
|
|
|
sub TIEHASH { bless [] }
|
|
|
|
sub FETCH {
|
|
my ($self, $errname) = @_;
|
|
my $proto = prototype("Errno::$errname");
|
|
my $errno = "";
|
|
if (defined($proto) && $proto eq "") {
|
|
no strict 'refs';
|
|
$errno = &$errname;
|
|
$errno = 0 unless $! == $errno;
|
|
}
|
|
return $errno;
|
|
}
|
|
|
|
sub STORE {
|
|
require Carp;
|
|
Carp::confess("ERRNO hash is read only!");
|
|
}
|
|
|
|
*CLEAR = \&STORE;
|
|
*DELETE = \&STORE;
|
|
|
|
sub NEXTKEY {
|
|
my($k,$v);
|
|
while(($k,$v) = each %Errno::) {
|
|
my $proto = prototype("Errno::$k");
|
|
last if (defined($proto) && $proto eq "");
|
|
}
|
|
$k
|
|
}
|
|
|
|
sub FIRSTKEY {
|
|
my $s = scalar keys %Errno::; # initialize iterator
|
|
goto &NEXTKEY;
|
|
}
|
|
|
|
sub EXISTS {
|
|
my ($self, $errname) = @_;
|
|
my $proto = prototype($errname);
|
|
defined($proto) && $proto eq "";
|
|
}
|
|
|
|
tie %!, __PACKAGE__;
|
|
|
|
1;
|
|
__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 <[email protected]>
|
|
|
|
=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
|
|
|