[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/i586-linux-thread-multi/ -> Fcntl.pm (source)

   1  package Fcntl;
   2  
   3  =head1 NAME
   4  
   5  Fcntl - load the C Fcntl.h defines
   6  
   7  =head1 SYNOPSIS
   8  
   9      use Fcntl;
  10      use Fcntl qw(:DEFAULT :flock);
  11  
  12  =head1 DESCRIPTION
  13  
  14  This module is just a translation of the C F<fcntl.h> file.
  15  Unlike the old mechanism of requiring a translated F<fcntl.ph>
  16  file, this uses the B<h2xs> program (see the Perl source distribution)
  17  and your native C compiler.  This means that it has a 
  18  far more likely chance of getting the numbers right.
  19  
  20  =head1 NOTE
  21  
  22  Only C<#define> symbols get translated; you must still correctly
  23  pack up your own arguments to pass as args for locking functions, etc.
  24  
  25  =head1 EXPORTED SYMBOLS
  26  
  27  By default your system's F_* and O_* constants (eg, F_DUPFD and
  28  O_CREAT) and the FD_CLOEXEC constant are exported into your namespace.
  29  
  30  You can request that the flock() constants (LOCK_SH, LOCK_EX, LOCK_NB
  31  and LOCK_UN) be provided by using the tag C<:flock>.  See L<Exporter>.
  32  
  33  You can request that the old constants (FAPPEND, FASYNC, FCREAT,
  34  FDEFER, FEXCL, FNDELAY, FNONBLOCK, FSYNC, FTRUNC) be provided for
  35  compatibility reasons by using the tag C<:Fcompat>.  For new
  36  applications the newer versions of these constants are suggested
  37  (O_APPEND, O_ASYNC, O_CREAT, O_DEFER, O_EXCL, O_NDELAY, O_NONBLOCK,
  38  O_SYNC, O_TRUNC).
  39  
  40  For ease of use also the SEEK_* constants (for seek() and sysseek(),
  41  e.g. SEEK_END) and the S_I* constants (for chmod() and stat()) are
  42  available for import.  They can be imported either separately or using
  43  the tags C<:seek> and C<:mode>.
  44  
  45  Please refer to your native fcntl(2), open(2), fseek(3), lseek(2)
  46  (equal to Perl's seek() and sysseek(), respectively), and chmod(2)
  47  documentation to see what constants are implemented in your system.
  48  
  49  See L<perlopentut> to learn about the uses of the O_* constants
  50  with sysopen().
  51  
  52  See L<perlfunc/seek> and L<perlfunc/sysseek> about the SEEK_* constants.
  53  
  54  See L<perlfunc/stat> about the S_I* constants.
  55  
  56  =cut
  57  
  58  use strict;
  59  our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $AUTOLOAD);
  60  
  61  require Exporter;
  62  use XSLoader ();
  63  @ISA = qw(Exporter);
  64  BEGIN {
  65    $VERSION = "1.06";
  66  }
  67  
  68  # Items to export into callers namespace by default
  69  # (move infrequently used names to @EXPORT_OK below)
  70  @EXPORT =
  71    qw(
  72      FD_CLOEXEC
  73      F_ALLOCSP
  74      F_ALLOCSP64
  75      F_COMPAT
  76      F_DUP2FD
  77      F_DUPFD
  78      F_EXLCK
  79      F_FREESP
  80      F_FREESP64
  81      F_FSYNC
  82      F_FSYNC64
  83      F_GETFD
  84      F_GETFL
  85      F_GETLK
  86      F_GETLK64
  87      F_GETOWN
  88      F_NODNY
  89      F_POSIX
  90      F_RDACC
  91      F_RDDNY
  92      F_RDLCK
  93      F_RWACC
  94      F_RWDNY
  95      F_SETFD
  96      F_SETFL
  97      F_SETLK
  98      F_SETLK64
  99      F_SETLKW
 100      F_SETLKW64
 101      F_SETOWN
 102      F_SHARE
 103      F_SHLCK
 104      F_UNLCK
 105      F_UNSHARE
 106      F_WRACC
 107      F_WRDNY
 108      F_WRLCK
 109      O_ACCMODE
 110      O_ALIAS
 111      O_APPEND
 112      O_ASYNC
 113      O_BINARY
 114      O_CREAT
 115      O_DEFER
 116      O_DIRECT
 117      O_DIRECTORY
 118      O_DSYNC
 119      O_EXCL
 120      O_EXLOCK
 121      O_LARGEFILE
 122      O_NDELAY
 123      O_NOCTTY
 124      O_NOFOLLOW
 125      O_NOINHERIT
 126      O_NONBLOCK
 127      O_RANDOM
 128      O_RAW
 129      O_RDONLY
 130      O_RDWR
 131      O_RSRC
 132      O_RSYNC
 133      O_SEQUENTIAL
 134      O_SHLOCK
 135      O_SYNC
 136      O_TEMPORARY
 137      O_TEXT
 138      O_TRUNC
 139      O_WRONLY
 140       );
 141  
 142  # Other items we are prepared to export if requested
 143  @EXPORT_OK = qw(
 144      DN_ACCESS
 145      DN_ATTRIB
 146      DN_CREATE
 147      DN_DELETE
 148      DN_MODIFY
 149      DN_MULTISHOT
 150      DN_RENAME
 151      FAPPEND
 152      FASYNC
 153      FCREAT
 154      FDEFER
 155      FDSYNC
 156      FEXCL
 157      FLARGEFILE
 158      FNDELAY
 159      FNONBLOCK
 160      FRSYNC
 161      FSYNC
 162      FTRUNC
 163      F_GETLEASE
 164      F_GETSIG
 165      F_NOTIFY
 166      F_SETLEASE
 167      F_SETSIG
 168      LOCK_EX
 169      LOCK_MAND
 170      LOCK_NB
 171      LOCK_READ
 172      LOCK_RW
 173      LOCK_SH
 174      LOCK_UN
 175      LOCK_WRITE
 176      O_IGNORE_CTTY
 177      O_NOATIME
 178      O_NOLINK
 179      O_NOTRANS
 180      SEEK_CUR
 181      SEEK_END
 182      SEEK_SET
 183      S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
 184      S_IREAD S_IWRITE S_IEXEC
 185      S_IRGRP S_IWGRP S_IXGRP S_IRWXG
 186      S_IROTH S_IWOTH S_IXOTH S_IRWXO
 187      S_IRUSR S_IWUSR S_IXUSR S_IRWXU
 188      S_ISUID S_ISGID S_ISVTX S_ISTXT
 189      _S_IFMT S_IFREG S_IFDIR S_IFLNK
 190      &S_ISREG &S_ISDIR &S_ISLNK &S_ISSOCK &S_ISBLK &S_ISCHR &S_ISFIFO
 191      &S_ISWHT &S_ISENFMT &S_IFMT &S_IMODE
 192  );
 193  # Named groups of exports
 194  %EXPORT_TAGS = (
 195      'flock'   => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
 196      'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
 197               FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
 198      'seek'    => [qw(SEEK_SET SEEK_CUR SEEK_END)],
 199      'mode'    => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT
 200               _S_IFMT S_IFREG S_IFDIR S_IFLNK
 201               S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
 202               S_IRUSR S_IWUSR S_IXUSR S_IRWXU
 203               S_IRGRP S_IWGRP S_IXGRP S_IRWXG
 204               S_IROTH S_IWOTH S_IXOTH S_IRWXO
 205               S_IREAD S_IWRITE S_IEXEC
 206               S_ISREG S_ISDIR S_ISLNK S_ISSOCK
 207               S_ISBLK S_ISCHR S_ISFIFO
 208               S_ISWHT S_ISENFMT        
 209               S_IFMT S_IMODE
 210                    )],
 211  );
 212  
 213  # Force the constants to become inlined
 214  BEGIN {
 215    XSLoader::load 'Fcntl', $VERSION;
 216  }
 217  
 218  sub S_IFMT  { @_ ? ( $_[0] & _S_IFMT() ) : _S_IFMT()  }
 219  sub S_IMODE { $_[0] & 07777 }
 220  
 221  sub S_ISREG    { ( $_[0] & _S_IFMT() ) == S_IFREG()   }
 222  sub S_ISDIR    { ( $_[0] & _S_IFMT() ) == S_IFDIR()   }
 223  sub S_ISLNK    { ( $_[0] & _S_IFMT() ) == S_IFLNK()   }
 224  sub S_ISSOCK   { ( $_[0] & _S_IFMT() ) == S_IFSOCK()  }
 225  sub S_ISBLK    { ( $_[0] & _S_IFMT() ) == S_IFBLK()   }
 226  sub S_ISCHR    { ( $_[0] & _S_IFMT() ) == S_IFCHR()   }
 227  sub S_ISFIFO   { ( $_[0] & _S_IFMT() ) == S_IFIFO()   }
 228  sub S_ISWHT    { ( $_[0] & _S_IFMT() ) == S_IFWHT()   }
 229  sub S_ISENFMT  { ( $_[0] & _S_IFMT() ) == S_IFENFMT() }
 230  
 231  sub AUTOLOAD {
 232      (my $constname = $AUTOLOAD) =~ s/.*:://;
 233      die "&Fcntl::constant not defined" if $constname eq 'constant';
 234      my ($error, $val) = constant($constname);
 235      if ($error) {
 236          my (undef,$file,$line) = caller;
 237          die "$error at $file line $line.\n";
 238      }
 239      no strict 'refs';
 240      *$AUTOLOAD = sub { $val };
 241      goto &$AUTOLOAD;
 242  }
 243  
 244  1;


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1