home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _bb84f34e33a7bf43f9737faa3c623124 < prev    next >
Text File  |  2000-03-24  |  4KB  |  173 lines

  1. #
  2. # This file is auto-generated. ***ANY*** changes here will be lost
  3. #
  4.  
  5. package Errno;
  6. use vars qw(@EXPORT_OK %EXPORT_TAGS @ISA $VERSION %errno $AUTOLOAD);
  7. use Exporter ();
  8. use Config;
  9. use strict;
  10.  
  11. "$Config{'archname'}-$Config{'osvers'}" eq
  12. "MSWin32-x86-multi-thread-4.0" or
  13.     die "Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
  14.  
  15. $VERSION = "1.111";
  16. @ISA = qw(Exporter);
  17.  
  18. @EXPORT_OK = qw(ENFILE EACCES EPERM EPIPE ERANGE ENOSPC ESPIPE
  19.     EDEADLOCK ENOMEM ENOTTY ENOSYS EAGAIN EXDEV ECHILD ENOTDIR ESRCH
  20.     EISDIR EROFS EEXIST ENODEV EBADF EMLINK EINVAL ENOLCK ENXIO
  21.     ENAMETOOLONG E2BIG EBUSY ENOENT EINTR ENOTEMPTY EDOM EDEADLK EIO
  22.     EFAULT EFBIG ENOEXEC EMFILE EILSEQ);
  23.  
  24. %EXPORT_TAGS = (
  25.     POSIX => [qw(
  26.     E2BIG EACCES EAGAIN EBADF EBUSY ECHILD EDEADLK EDOM EEXIST EFAULT
  27.     EFBIG EINTR EINVAL EIO EISDIR EMFILE EMLINK ENAMETOOLONG ENFILE ENODEV
  28.     ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS ENOTDIR ENOTEMPTY ENOTTY
  29.     ENXIO EPERM EPIPE ERANGE EROFS ESPIPE ESRCH EXDEV
  30.     )]
  31. );
  32.  
  33. sub EPERM () { 1 }
  34. sub ENOENT () { 2 }
  35. sub ESRCH () { 3 }
  36. sub EINTR () { 4 }
  37. sub EIO () { 5 }
  38. sub ENXIO () { 6 }
  39. sub E2BIG () { 7 }
  40. sub ENOEXEC () { 8 }
  41. sub EBADF () { 9 }
  42. sub ECHILD () { 10 }
  43. sub EAGAIN () { 11 }
  44. sub ENOMEM () { 12 }
  45. sub EACCES () { 13 }
  46. sub EFAULT () { 14 }
  47. sub EBUSY () { 16 }
  48. sub EEXIST () { 17 }
  49. sub EXDEV () { 18 }
  50. sub ENODEV () { 19 }
  51. sub ENOTDIR () { 20 }
  52. sub EISDIR () { 21 }
  53. sub EINVAL () { 22 }
  54. sub ENFILE () { 23 }
  55. sub EMFILE () { 24 }
  56. sub ENOTTY () { 25 }
  57. sub EFBIG () { 27 }
  58. sub ENOSPC () { 28 }
  59. sub ESPIPE () { 29 }
  60. sub EROFS () { 30 }
  61. sub EMLINK () { 31 }
  62. sub EPIPE () { 32 }
  63. sub EDOM () { 33 }
  64. sub ERANGE () { 34 }
  65. sub EDEADLK () { 36 }
  66. sub EDEADLOCK () { 36 }
  67. sub ENAMETOOLONG () { 38 }
  68. sub ENOLCK () { 39 }
  69. sub ENOSYS () { 40 }
  70. sub ENOTEMPTY () { 41 }
  71. sub EILSEQ () { 42 }
  72.  
  73. sub TIEHASH { bless [] }
  74.  
  75. sub FETCH {
  76.     my ($self, $errname) = @_;
  77.     my $proto = prototype("Errno::$errname");
  78.     my $errno = "";
  79.     if (defined($proto) && $proto eq "") {
  80.     no strict 'refs';
  81.     $errno = &$errname;
  82.         $errno = 0 unless $! == $errno;
  83.     }
  84.     return $errno;
  85. }
  86.  
  87. sub STORE {
  88.     require Carp;
  89.     Carp::confess("ERRNO hash is read only!");
  90. }
  91.  
  92. *CLEAR = \&STORE;
  93. *DELETE = \&STORE;
  94.  
  95. sub NEXTKEY {
  96.     my($k,$v);
  97.     while(($k,$v) = each %Errno::) {
  98.     my $proto = prototype("Errno::$k");
  99.     last if (defined($proto) && $proto eq "");
  100.     }
  101.     $k
  102. }
  103.  
  104. sub FIRSTKEY {
  105.     my $s = scalar keys %Errno::;    # initialize iterator
  106.     goto &NEXTKEY;
  107. }
  108.  
  109. sub EXISTS {
  110.     my ($self, $errname) = @_;
  111.     my $proto = prototype($errname);
  112.     defined($proto) && $proto eq "";
  113. }
  114.  
  115. tie %!, __PACKAGE__;
  116.  
  117. 1;
  118. __END__
  119.  
  120. =head1 NAME
  121.  
  122. Errno - System errno constants
  123.  
  124. =head1 SYNOPSIS
  125.  
  126.     use Errno qw(EINTR EIO :POSIX);
  127.  
  128. =head1 DESCRIPTION
  129.  
  130. C<Errno> defines and conditionally exports all the error constants
  131. defined in your system C<errno.h> include file. It has a single export
  132. tag, C<:POSIX>, which will export all POSIX defined error numbers.
  133.  
  134. C<Errno> also makes C<%!> magic such that each element of C<%!> has a
  135. non-zero value only if C<$!> is set to that value. For example:
  136.  
  137.     use Errno;
  138.  
  139.     unless (open(FH, "/fangorn/spouse")) {
  140.         if ($!{ENOENT}) {
  141.             warn "Get a wife!\n";
  142.         } else {
  143.             warn "This path is barred: $!";
  144.         } 
  145.     } 
  146.  
  147. If a specified constant C<EFOO> does not exist on the system, C<$!{EFOO}>
  148. returns C<"">.  You may use C<exists $!{EFOO}> to check whether the
  149. constant is available on the system.
  150.  
  151. =head1 CAVEATS
  152.  
  153. Importing a particular constant may not be very portable, because the
  154. import will fail on platforms that do not have that constant.  A more
  155. portable way to set C<$!> to a valid value is to use:
  156.  
  157.     if (exists &Errno::EFOO) {
  158.         $! = &Errno::EFOO;
  159.     }
  160.  
  161. =head1 AUTHOR
  162.  
  163. Graham Barr <gbarr@pobox.com>
  164.  
  165. =head1 COPYRIGHT
  166.  
  167. Copyright (c) 1997-8 Graham Barr. All rights reserved.
  168. This program is free software; you can redistribute it and/or modify it
  169. under the same terms as Perl itself.
  170.  
  171. =cut
  172.  
  173.