Initial Windows agent repository
This commit is contained in:
commit
a0db0c2e5b
10589 changed files with 3844063 additions and 0 deletions
997
OGP64/lib/perl5/5.40/x86_64-cygwin-threads/Fcntl.pm
Normal file
997
OGP64/lib/perl5/5.40/x86_64-cygwin-threads/Fcntl.pm
Normal file
|
|
@ -0,0 +1,997 @@
|
|||
package Fcntl;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Fcntl - various flag constants and helper functions from C's fcntl.h
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use Fcntl;
|
||||
use Fcntl qw(:DEFAULT :flock);
|
||||
use Fcntl qw(F_GETFD F_SETFD FD_CLOEXEC);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This module provides flags and helper functions for use with L<perlfunc/chmod>
|
||||
(S_*), L<perlfunc/fcntl> (F_*), L<perlfunc/flock> (LOCK_*), L<perlfunc/seek>
|
||||
(SEEK_*), L<perlfunc/stat> (S_*), L<perlfunc/sysopen> (O_*), and
|
||||
L<perlfunc/sysseek> (SEEK_*). They correspond to the C macros defined in
|
||||
F<fcntl.h>.
|
||||
|
||||
Not all symbols are available on all systems. Except where noted otherwise,
|
||||
the constants and functions provided by this module will throw a runtime
|
||||
exception if the corresponding C macro is not available. Consult your system
|
||||
documentation to see the full description of each symbol and whether it is
|
||||
available on your platform: L<chmod(2)>, L<fcntl(2)>, L<flock(2)>,
|
||||
L<lseek(2)>, L<open(2)>, L<stat(2)>.
|
||||
|
||||
(In particular, some of the F_* symbols are highly non-portable because they
|
||||
only exist on a single platform or require system-specific C data structures to
|
||||
be passed as the third argument to C<fcntl>, which can't be portably
|
||||
constructed in pure Perl.)
|
||||
|
||||
=head1 EXPORTED SYMBOLS
|
||||
|
||||
=head2 Default exports and export tags
|
||||
|
||||
The full list of default exports can be found below in L</APPENDIX A>.
|
||||
|
||||
In addition, the following export tags are available (see L<Exporter> for more
|
||||
information on export tags):
|
||||
|
||||
=over
|
||||
|
||||
=item C<:DEFAULT>
|
||||
|
||||
Equivalent to the list of default export symbols (see L</APPENDIX A>).
|
||||
|
||||
=item C<:flock>
|
||||
|
||||
Equivalent to all LOCK_* symbols listed below.
|
||||
|
||||
=item C<:mode>
|
||||
|
||||
Equivalent to all S_* symbols listed below.
|
||||
|
||||
=item C<:seek>
|
||||
|
||||
Equivalent to all SEEK_* symbols listed below.
|
||||
|
||||
=item C<:Fcompat>
|
||||
|
||||
Equivalent to C<qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE FNDELAY
|
||||
FNONBLOCK FRSYNC FSYNC FTRUNC)>. These only exist for compatibility with old
|
||||
code (if your platform defines them at all) and should not be used in new code.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Symbols for use with C<fcntl>
|
||||
|
||||
=over
|
||||
|
||||
=item C<F_ALLOCSP>
|
||||
|
||||
File storage manipulation.
|
||||
|
||||
=item C<F_ALLOCSP64>
|
||||
|
||||
File storage manipulation.
|
||||
|
||||
=item C<F_DUP2FD>
|
||||
|
||||
Duplicate a file descriptor to the number specified in the third argument to
|
||||
C<fcntl> (if it refers to an open file, it is automatically closed first).
|
||||
|
||||
=item C<F_DUPFD>
|
||||
|
||||
Duplicate a file descriptor to the lowest unused number greater than or equal
|
||||
to the third argument of C<fcntl>.
|
||||
|
||||
=item C<F_FREESP>
|
||||
|
||||
File storage manipulation.
|
||||
|
||||
=item C<F_FREESP64>
|
||||
|
||||
File storage manipulation.
|
||||
|
||||
=item C<F_FSYNC>
|
||||
|
||||
Synchronize file data to disk.
|
||||
|
||||
=item C<F_FSYNC64>
|
||||
|
||||
Synchronize file data to disk.
|
||||
|
||||
=item C<F_GETFD>
|
||||
|
||||
Return (as a number) the set of file descriptor flags, in which the following
|
||||
bits may be set:
|
||||
|
||||
=over
|
||||
|
||||
=item C<FD_CLOEXEC>
|
||||
|
||||
During a successful C<exec> call, the file descriptor will be closed
|
||||
automatically.
|
||||
|
||||
=back
|
||||
|
||||
=item C<F_GETFL>
|
||||
|
||||
Return (as a number) the set of file description status flags (O_*) as set by
|
||||
C<open> and C<fcntl>. To determine the file access mode, perform a bitwise AND
|
||||
with L</C<O_ACCMODE>> and see whether the result is equal to C<O_RDONLY>,
|
||||
C<O_WRONLY>, or C<O_RDWR>.
|
||||
|
||||
=item C<F_GETLEASE>
|
||||
|
||||
Indicate the type of lease associated with the filehandle (if any) by returning
|
||||
one of the following flags:
|
||||
|
||||
=over
|
||||
|
||||
=item C<F_RDLCK>
|
||||
|
||||
A read lease.
|
||||
|
||||
=item C<F_WRLCK>
|
||||
|
||||
A write lease.
|
||||
|
||||
=item C<F_UNLCK>
|
||||
|
||||
No lease.
|
||||
|
||||
=back
|
||||
|
||||
=item C<F_GETLK>
|
||||
|
||||
Test for the existence of record locks on the file.
|
||||
|
||||
=item C<F_GETLK64>
|
||||
|
||||
Test for the existence of record locks on the file.
|
||||
|
||||
=item C<F_GETOWN>
|
||||
|
||||
Return the ID of the process (as a positive number) or group (as a negative
|
||||
number) that is currently receiving signals for events on the file descriptor.
|
||||
|
||||
=item C<F_GETPIPE_SZ>
|
||||
|
||||
Return the capacity of the pipe associated with the filehandle.
|
||||
|
||||
=item C<F_GETSIG>
|
||||
|
||||
Return the number of the signal sent when input or output becomes possible on
|
||||
the filehandle. A return value of C<0> means C<SIGIO>.
|
||||
|
||||
=item C<F_NOTIFY>
|
||||
|
||||
File and directory change notification with signals.
|
||||
|
||||
=over
|
||||
|
||||
=item C<DN_ACCESS>
|
||||
|
||||
=item C<DN_ATTRIB>
|
||||
|
||||
=item C<DN_CREATE>
|
||||
|
||||
=item C<DN_DELETE>
|
||||
|
||||
=item C<DN_MODIFY>
|
||||
|
||||
=item C<DN_MULTISHOT>
|
||||
|
||||
=item C<DN_RENAME>
|
||||
|
||||
=back
|
||||
|
||||
Z<>
|
||||
|
||||
=item C<F_SETFD>
|
||||
|
||||
Set the file descriptor flags. See L</C<F_GETFD>> for the list of available
|
||||
flags.
|
||||
|
||||
=item C<F_SETFL>
|
||||
|
||||
Set the file description status flags (O_*). Only some flags can be changed
|
||||
this way.
|
||||
|
||||
=item C<F_SETLEASE>
|
||||
|
||||
Set a file lease as specified by the third C<fnctl> argument, which must be one
|
||||
of the following:
|
||||
|
||||
=over
|
||||
|
||||
=item C<F_RDLCK>
|
||||
|
||||
Set a read lease.
|
||||
|
||||
=item C<F_WRLCK>
|
||||
|
||||
Set a write lease.
|
||||
|
||||
=item C<F_UNLCK>
|
||||
|
||||
Remove a lease.
|
||||
|
||||
=back
|
||||
|
||||
=item C<F_SETLK>
|
||||
|
||||
Acquire a record lock.
|
||||
|
||||
=item C<F_SETLK64>
|
||||
|
||||
Acquire a record lock.
|
||||
|
||||
=item C<F_SETLKW>
|
||||
|
||||
Acquire a record lock and wait for conflicting locks to be released.
|
||||
|
||||
=item C<F_SETLKW64>
|
||||
|
||||
Acquire a record lock and wait for conflicting locks to be released.
|
||||
|
||||
=item C<F_SETOWN>
|
||||
|
||||
Set the ID of the process (as a positive number) or group (as a negative
|
||||
number) that will receive signals for events on the file descriptor.
|
||||
|
||||
=item C<F_SETPIPE_SZ>
|
||||
|
||||
Set the capacity of the pipe associated with the filehandle. Return the actual
|
||||
capacity reserved for the pipe, which may be higher than requested.
|
||||
|
||||
=item C<F_SETSIG>
|
||||
|
||||
Set the number of the signal sent when input or output becomes possible on the
|
||||
filehandle. An argument of C<0> means C<SIGIO>.
|
||||
|
||||
=item C<F_SHARE>
|
||||
|
||||
Set share reservation.
|
||||
|
||||
=item C<F_UNSHARE>
|
||||
|
||||
Remove share reservation.
|
||||
|
||||
=item C<F_COMPAT>
|
||||
|
||||
=item C<F_EXLCK>
|
||||
|
||||
=item C<F_NODNY>
|
||||
|
||||
=item C<F_POSIX>
|
||||
|
||||
=item C<F_RDACC>
|
||||
|
||||
=item C<F_RDDNY>
|
||||
|
||||
=item C<F_RWACC>
|
||||
|
||||
=item C<F_RWDNY>
|
||||
|
||||
=item C<F_SHLCK>
|
||||
|
||||
=item C<F_WRACC>
|
||||
|
||||
=item C<F_WRDNY>
|
||||
|
||||
=back
|
||||
|
||||
=head2 Symbols for use with C<flock>
|
||||
|
||||
=over
|
||||
|
||||
=item C<LOCK_EX>
|
||||
|
||||
Request an exclusive lock.
|
||||
|
||||
=item C<LOCK_MAND>
|
||||
|
||||
Request a mandatory lock.
|
||||
|
||||
=item C<LOCK_NB>
|
||||
|
||||
Make lock request non-blocking (can be combined with other LOCK_* flags using bitwise OR).
|
||||
|
||||
=item C<LOCK_READ>
|
||||
|
||||
With C<LOCK_MAND>: Allow concurrent reads.
|
||||
|
||||
=item C<LOCK_RW>
|
||||
|
||||
With C<LOCK_MAND>: Allow concurrent reads and writes.
|
||||
|
||||
=item C<LOCK_SH>
|
||||
|
||||
Request a shared lock.
|
||||
|
||||
=item C<LOCK_UN>
|
||||
|
||||
Release a held lock.
|
||||
|
||||
=item C<LOCK_WRITE>
|
||||
|
||||
With C<LOCK_MAND>: Allow concurrent writes.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Symbols for use with C<sysopen>
|
||||
|
||||
=over
|
||||
|
||||
=item C<O_ACCMODE>
|
||||
|
||||
Bit mask for extracting the file access mode (read-only, write-only, or
|
||||
read/write) from the other flags. This is mainly useful in combination with
|
||||
L</C<F_GETFL>>.
|
||||
|
||||
=item C<O_ALIAS>
|
||||
|
||||
(Mac OS) Open alias file (instead of the file that the alias refers to).
|
||||
|
||||
=item C<O_ALT_IO>
|
||||
|
||||
(NetBSD) Use alternative I/O semantics.
|
||||
|
||||
=item C<O_APPEND>
|
||||
|
||||
Open the file in append mode. Writes always go to the end of the file.
|
||||
|
||||
=item C<O_ASYNC>
|
||||
|
||||
Enable signal-based I/O. When the file becomes readable or writable, a signal
|
||||
is sent.
|
||||
|
||||
=item C<O_BINARY>
|
||||
|
||||
(Windows) Open the file in binary mode.
|
||||
|
||||
=item C<O_CREAT>
|
||||
|
||||
If the file to be opened does not exist yet, create it.
|
||||
|
||||
=item C<O_DEFER>
|
||||
|
||||
(AIX) Changes to the file are kept in memory and not written to disk until the
|
||||
program performs an explicit L<< C<< $fh->sync() >>|IO::Handle/$io->sync >>.
|
||||
|
||||
=item C<O_DIRECT>
|
||||
|
||||
Perform direct I/O to/from user-space buffers; avoid caching at the OS level.
|
||||
|
||||
=item C<O_DIRECTORY>
|
||||
|
||||
Fail if the filename to be opened does not refer to a directory.
|
||||
|
||||
=item C<O_DSYNC>
|
||||
|
||||
Synchronize file data immediately, like calling L<fdatasync(2)> after each
|
||||
write.
|
||||
|
||||
=item C<O_EVTONLY>
|
||||
|
||||
(Mac OS) Open the file for event notifications, not reading or writing.
|
||||
|
||||
=item C<O_EXCL>
|
||||
|
||||
If the file already exists, fail and set C<$!> to L<C<EEXIST>|Errno> (this only
|
||||
makes sense in combination with C<O_CREAT>).
|
||||
|
||||
=item C<O_EXLOCK>
|
||||
|
||||
When the file is opened, atomically obtain an exclusive lock.
|
||||
|
||||
=item C<O_IGNORE_CTTY>
|
||||
|
||||
(Hurd) If the file to be opened is the controlling terminal for this process,
|
||||
don't recognize it as such. Operations on this filehandle won't trigger job
|
||||
control signals.
|
||||
|
||||
=item C<O_LARGEFILE>
|
||||
|
||||
On 32-bit platforms, allow opening files whose size exceeds 2 GiB
|
||||
(2,147,483,647 bytes).
|
||||
|
||||
=item C<O_NDELAY>
|
||||
|
||||
Compatibility symbol. Use C<O_NONBLOCK> instead.
|
||||
|
||||
=item C<O_NOATIME>
|
||||
|
||||
Don't update the access time of the file when reading from it.
|
||||
|
||||
=item C<O_NOCTTY>
|
||||
|
||||
If the process does not have a controlling terminal and the file to be opened
|
||||
is a terminal device, don't make it the controlling terminal of the process.
|
||||
|
||||
=item C<O_NOFOLLOW>
|
||||
|
||||
If the final component of the filename is a symbolic link, fail and set C<$!>
|
||||
to L<C<ELOOP>|Errno>.
|
||||
|
||||
=item C<O_NOINHERIT>
|
||||
|
||||
(Windows) Don't let child processes inherit the opened file descriptor.
|
||||
|
||||
=item C<O_NOLINK>
|
||||
|
||||
(Hurd) If the file to be opened is a symbolic link, don't follow it; open the
|
||||
link itself.
|
||||
|
||||
=item C<O_NONBLOCK>
|
||||
|
||||
Open the file in non-blocking mode. Neither the open itself nor any read/write
|
||||
operations on the filehandle will block. (This is mainly useful for pipes and
|
||||
sockets. It has no effect on regular files.)
|
||||
|
||||
=item C<O_NOSIGPIPE>
|
||||
|
||||
If the file to be opened is a pipe, then don't raise C<SIGPIPE> for write
|
||||
operations when the read end of the pipe is closed; make the write fail with
|
||||
C<EPIPE> instead.
|
||||
|
||||
=item C<O_NOTRANS>
|
||||
|
||||
(Hurd) If the file to be opened is specially translated, don't invoke the
|
||||
translator; open the bare file itself.
|
||||
|
||||
=item C<O_RANDOM>
|
||||
|
||||
(Windows) Indicate that the program intends to access the file contents
|
||||
randomly (without a predictable pattern). This is an optimization hint for the
|
||||
file cache (but may cause excessive memory use on large files).
|
||||
|
||||
=item C<O_RAW>
|
||||
|
||||
(Windows) Same as C<O_BINARY>.
|
||||
|
||||
=item C<O_RDONLY>
|
||||
|
||||
Open the file for reading (only).
|
||||
|
||||
=item C<O_RDWR>
|
||||
|
||||
Open the file for reading and writing.
|
||||
|
||||
=item C<O_RSRC>
|
||||
|
||||
(Mac OS) Open the resource fork of the file.
|
||||
|
||||
=item C<O_RSYNC>
|
||||
|
||||
Extend the effects of C<O_SYNC> and C<O_DSYNC> to read operations. In
|
||||
particular, reading from a filehandle opened with C<O_SYNC | O_RSYNC> will wait
|
||||
until the access time of the file has been modified on disk.
|
||||
|
||||
=item C<O_SEQUENTIAL>
|
||||
|
||||
(Windows) Indicate that the program intends to access the file contents
|
||||
sequentially. This is an optimization hint for the file cache.
|
||||
|
||||
=item C<O_SHLOCK>
|
||||
|
||||
When the file is opened, atomically obtain a shared lock.
|
||||
|
||||
=item C<O_SYMLINK>
|
||||
|
||||
If the file to be opened is a symbolic link, don't follow it; open the link
|
||||
itself.
|
||||
|
||||
=item C<O_SYNC>
|
||||
|
||||
Synchronize file data and metadata immediately, like calling L<fsync(2)> after
|
||||
each write.
|
||||
|
||||
=item C<O_TEMPORARY>
|
||||
|
||||
(Windows) Delete the file when its last open file descriptor is closed.
|
||||
|
||||
=item C<O_TEXT>
|
||||
|
||||
(Windows) Open the file in text mode.
|
||||
|
||||
=item C<O_TMPFILE>
|
||||
|
||||
Create an unnamed temporary file. The filename argument specifies the directory
|
||||
the unnamed file should be placed in.
|
||||
|
||||
=item C<O_TRUNC>
|
||||
|
||||
If the file already exists, truncate its contents to length 0.
|
||||
|
||||
=item C<O_TTY_INIT>
|
||||
|
||||
If the file to be opened is a terminal that is not already open in any process,
|
||||
initialize its L<termios|POSIX/C<POSIX::Termios>> parameters.
|
||||
|
||||
=item C<O_WRONLY>
|
||||
|
||||
Open the file for writing (only).
|
||||
|
||||
=item C<FAPPEND>
|
||||
|
||||
Compatibility symbol. Use C<O_APPEND> instead.
|
||||
|
||||
=item C<FASYNC>
|
||||
|
||||
Compatibility symbol. Use C<O_ASYNC> instead.
|
||||
|
||||
=item C<FCREAT>
|
||||
|
||||
Compatibility symbol. Use C<O_CREAT> instead.
|
||||
|
||||
=item C<FDEFER>
|
||||
|
||||
Compatibility symbol. Use C<O_DEFER> instead.
|
||||
|
||||
=item C<FDSYNC>
|
||||
|
||||
Compatibility symbol. Use C<O_DSYNC> instead.
|
||||
|
||||
=item C<FEXCL>
|
||||
|
||||
Compatibility symbol. Use C<O_EXCL> instead.
|
||||
|
||||
=item C<FLARGEFILE>
|
||||
|
||||
Compatibility symbol. Use C<O_LARGEFILE> instead.
|
||||
|
||||
=item C<FNDELAY>
|
||||
|
||||
Compatibility symbol. Use C<O_NDELAY> instead.
|
||||
|
||||
=item C<FNONBLOCK>
|
||||
|
||||
Compatibility symbol. Use C<O_NONBLOCK> instead.
|
||||
|
||||
=item C<FRSYNC>
|
||||
|
||||
Compatibility symbol. Use C<O_RSYNC> instead.
|
||||
|
||||
=item C<FSYNC>
|
||||
|
||||
Compatibility symbol. Use C<O_SYNC> instead.
|
||||
|
||||
=item C<FTRUNC>
|
||||
|
||||
Compatibility symbol. Use C<O_TRUNC> instead.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Symbols for use with C<seek> and C<sysseek>
|
||||
|
||||
=over
|
||||
|
||||
=item C<SEEK_CUR>
|
||||
|
||||
File offsets are relative to the current position in the file.
|
||||
|
||||
=item C<SEEK_END>
|
||||
|
||||
File offsets are relative to the end of the file (i.e. mostly negative).
|
||||
|
||||
=item C<SEEK_SET>
|
||||
|
||||
File offsets are absolute (i.e. relative to the beginning of the file).
|
||||
|
||||
=back
|
||||
|
||||
=head2 Symbols for use with C<stat> and C<chmod>
|
||||
|
||||
=over
|
||||
|
||||
=item C<S_ENFMT>
|
||||
|
||||
Enforce mandatory file locks. (This symbol typically shares its value with
|
||||
C<S_ISGID>.)
|
||||
|
||||
=item C<S_IEXEC>
|
||||
|
||||
Compatibility symbol. Use C<S_IXUSR> instead.
|
||||
|
||||
=item C<S_IFBLK>
|
||||
|
||||
File type: Block device.
|
||||
|
||||
=item C<S_IFCHR>
|
||||
|
||||
File type: Character device.
|
||||
|
||||
=item C<S_IFDIR>
|
||||
|
||||
File type: Directory.
|
||||
|
||||
=item C<S_IFIFO>
|
||||
|
||||
File type: Fifo/pipe.
|
||||
|
||||
=item C<S_IFLNK>
|
||||
|
||||
File type: Symbolic link.
|
||||
|
||||
=item C<S_IFMT>
|
||||
|
||||
Bit mask for extracting the file type bits. This symbol can also be used as a
|
||||
function: C<S_IFMT($mode)> acts like C<$mode & S_IFMT>. The result will be
|
||||
equal to one of the other S_IF* constants.
|
||||
|
||||
=item C<_S_IFMT>
|
||||
|
||||
Bit mask for extracting the file type bits. This symbol is an actual constant
|
||||
and cannot be used as a function; otherwise it is identical to C<S_IFMT>.
|
||||
|
||||
=item C<S_IFREG>
|
||||
|
||||
File type: Regular file.
|
||||
|
||||
=item C<S_IFSOCK>
|
||||
|
||||
File type: Socket.
|
||||
|
||||
=item C<S_IFWHT>
|
||||
|
||||
File type: Whiteout file (used to mark the absence/deletion of a file in overlays).
|
||||
|
||||
=item C<S_IMODE>
|
||||
|
||||
Function for extracting the permission bits from a file mode.
|
||||
|
||||
=item C<S_IREAD>
|
||||
|
||||
Compatibility symbol. Use C<S_IRUSR> instead.
|
||||
|
||||
=item C<S_IRGRP>
|
||||
|
||||
Permissions: Readable by group.
|
||||
|
||||
=item C<S_IROTH>
|
||||
|
||||
Permissions: Readable by others.
|
||||
|
||||
=item C<S_IRUSR>
|
||||
|
||||
Permissions: Readable by owner.
|
||||
|
||||
=item C<S_IRWXG>
|
||||
|
||||
Bit mask for extracting group permissions.
|
||||
|
||||
=item C<S_IRWXO>
|
||||
|
||||
Bit mask for extracting other permissions.
|
||||
|
||||
=item C<S_IRWXU>
|
||||
|
||||
Bit mask for extracting owner ("user") permissions.
|
||||
|
||||
=item C<S_ISBLK>
|
||||
|
||||
Convenience function to check for block devices: C<S_ISBLK($mode)> is
|
||||
equivalent to C<S_IFMT($mode) == S_IFBLK>.
|
||||
|
||||
=item C<S_ISCHR>
|
||||
|
||||
Convenience function to check for character devices: C<S_ISCHR($mode)> is
|
||||
equivalent to C<S_IFMT($mode) == S_IFCHR>.
|
||||
|
||||
=item C<S_ISDIR>
|
||||
|
||||
Convenience function to check for directories: C<S_ISDIR($mode)> is
|
||||
equivalent to C<S_IFMT($mode) == S_IFDIR>.
|
||||
|
||||
=item C<S_ISENFMT>
|
||||
|
||||
Broken function; do not use. (C<S_ISENFMT($mode)> should always return false,
|
||||
anyway.)
|
||||
|
||||
=item C<S_ISFIFO>
|
||||
|
||||
Convenience function to check for fifos: C<S_ISFIFO($mode)> is
|
||||
equivalent to C<S_IFMT($mode) == S_IFIFO>.
|
||||
|
||||
=item C<S_ISGID>
|
||||
|
||||
Permissions: Set effective group ID from file (when running executables);
|
||||
mandatory locking (on non-group-executable files); new files inherit their
|
||||
group from the directory (on directories).
|
||||
|
||||
=item C<S_ISLNK>
|
||||
|
||||
Convenience function to check for symbolic links: C<S_ISLNK($mode)> is
|
||||
equivalent to C<S_IFMT($mode) == S_IFLNK>.
|
||||
|
||||
=item C<S_ISREG>
|
||||
|
||||
Convenience function to check for regular files: C<S_ISREG($mode)> is
|
||||
equivalent to C<S_IFMT($mode) == S_IFREG>.
|
||||
|
||||
=item C<S_ISSOCK>
|
||||
|
||||
Convenience function to check for sockets: C<S_ISSOCK($mode)> is
|
||||
equivalent to C<S_IFMT($mode) == S_IFSOCK>.
|
||||
|
||||
=item C<S_ISTXT>
|
||||
|
||||
Compatibility symbol. Use C<S_ISVTX> instead.
|
||||
|
||||
=item C<S_ISUID>
|
||||
|
||||
Permissions: Set effective user ID from file (when running executables).
|
||||
|
||||
=item C<S_ISVTX>
|
||||
|
||||
Permissions: Files in this directory can only be deleted/renamed by their owner
|
||||
(or the directory's owner), even if other users have write permissions to the
|
||||
directory ("sticky bit").
|
||||
|
||||
=item C<S_ISWHT>
|
||||
|
||||
Convenience function to check for whiteout files: C<S_ISWHT($mode)> is
|
||||
equivalent to C<S_IFMT($mode) == S_IFWHT>.
|
||||
|
||||
=item C<S_IWGRP>
|
||||
|
||||
Permissions: Writable by group.
|
||||
|
||||
=item C<S_IWOTH>
|
||||
|
||||
Permissions: Writable by others.
|
||||
|
||||
=item C<S_IWRITE>
|
||||
|
||||
Compatibility symbol. Use C<S_IWUSR> instead.
|
||||
|
||||
=item C<S_IWUSR>
|
||||
|
||||
Permissions: Writable by owner.
|
||||
|
||||
=item C<S_IXGRP>
|
||||
|
||||
Permissions: Executable/searchable by group.
|
||||
|
||||
=item C<S_IXOTH>
|
||||
|
||||
Permissions: Executable/searchable by others.
|
||||
|
||||
=item C<S_IXUSR>
|
||||
|
||||
Permissions: Executable/searchable by owner.
|
||||
|
||||
=back
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<perlfunc/chmod>, L<chmod(2)>,
|
||||
L<perlfunc/fcntl>, L<fcntl(2)>,
|
||||
L<perlfunc/flock>, L<flock(2)>,
|
||||
L<perlfunc/seek>, L<fseek(3)>,
|
||||
L<perlfunc/stat>, L<stat(2)>,
|
||||
L<perlfunc/sysopen>, L<open(2)>,
|
||||
L<perlfunc/sysseek>, L<lseek(2)>
|
||||
|
||||
=head1 APPENDIX A
|
||||
|
||||
By default, if you say C<use Fcntl;>, the following symbols are exported:
|
||||
|
||||
FD_CLOEXEC
|
||||
F_ALLOCSP
|
||||
F_ALLOCSP64
|
||||
F_COMPAT
|
||||
F_DUP2FD
|
||||
F_DUPFD
|
||||
F_EXLCK
|
||||
F_FREESP
|
||||
F_FREESP64
|
||||
F_FSYNC
|
||||
F_FSYNC64
|
||||
F_GETFD
|
||||
F_GETFL
|
||||
F_GETLK
|
||||
F_GETLK64
|
||||
F_GETOWN
|
||||
F_NODNY
|
||||
F_POSIX
|
||||
F_RDACC
|
||||
F_RDDNY
|
||||
F_RDLCK
|
||||
F_RWACC
|
||||
F_RWDNY
|
||||
F_SETFD
|
||||
F_SETFL
|
||||
F_SETLK
|
||||
F_SETLK64
|
||||
F_SETLKW
|
||||
F_SETLKW64
|
||||
F_SETOWN
|
||||
F_SHARE
|
||||
F_SHLCK
|
||||
F_UNLCK
|
||||
F_UNSHARE
|
||||
F_WRACC
|
||||
F_WRDNY
|
||||
F_WRLCK
|
||||
O_ACCMODE
|
||||
O_ALIAS
|
||||
O_APPEND
|
||||
O_ASYNC
|
||||
O_BINARY
|
||||
O_CREAT
|
||||
O_DEFER
|
||||
O_DIRECT
|
||||
O_DIRECTORY
|
||||
O_DSYNC
|
||||
O_EXCL
|
||||
O_EXLOCK
|
||||
O_LARGEFILE
|
||||
O_NDELAY
|
||||
O_NOCTTY
|
||||
O_NOFOLLOW
|
||||
O_NOINHERIT
|
||||
O_NONBLOCK
|
||||
O_RANDOM
|
||||
O_RAW
|
||||
O_RDONLY
|
||||
O_RDWR
|
||||
O_RSRC
|
||||
O_RSYNC
|
||||
O_SEQUENTIAL
|
||||
O_SHLOCK
|
||||
O_SYNC
|
||||
O_TEMPORARY
|
||||
O_TEXT
|
||||
O_TRUNC
|
||||
O_WRONLY
|
||||
|
||||
=cut
|
||||
|
||||
use strict;
|
||||
|
||||
use Exporter 'import';
|
||||
require XSLoader;
|
||||
our $VERSION = '1.18';
|
||||
|
||||
XSLoader::load();
|
||||
|
||||
# Named groups of exports
|
||||
our %EXPORT_TAGS = (
|
||||
'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
|
||||
'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
|
||||
FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
|
||||
'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)],
|
||||
'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT
|
||||
_S_IFMT S_IFREG S_IFDIR S_IFLNK
|
||||
S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
|
||||
S_IRUSR S_IWUSR S_IXUSR S_IRWXU
|
||||
S_IRGRP S_IWGRP S_IXGRP S_IRWXG
|
||||
S_IROTH S_IWOTH S_IXOTH S_IRWXO
|
||||
S_IREAD S_IWRITE S_IEXEC
|
||||
S_ISREG S_ISDIR S_ISLNK S_ISSOCK
|
||||
S_ISBLK S_ISCHR S_ISFIFO
|
||||
S_ISWHT S_ISENFMT
|
||||
S_IFMT S_IMODE
|
||||
)],
|
||||
);
|
||||
|
||||
# Items to export into callers namespace by default
|
||||
# (move infrequently used names to @EXPORT_OK below)
|
||||
our @EXPORT =
|
||||
qw(
|
||||
FD_CLOEXEC
|
||||
F_ALLOCSP
|
||||
F_ALLOCSP64
|
||||
F_COMPAT
|
||||
F_DUP2FD
|
||||
F_DUPFD
|
||||
F_EXLCK
|
||||
F_FREESP
|
||||
F_FREESP64
|
||||
F_FSYNC
|
||||
F_FSYNC64
|
||||
F_GETFD
|
||||
F_GETFL
|
||||
F_GETLK
|
||||
F_GETLK64
|
||||
F_GETOWN
|
||||
F_NODNY
|
||||
F_POSIX
|
||||
F_RDACC
|
||||
F_RDDNY
|
||||
F_RDLCK
|
||||
F_RWACC
|
||||
F_RWDNY
|
||||
F_SETFD
|
||||
F_SETFL
|
||||
F_SETLK
|
||||
F_SETLK64
|
||||
F_SETLKW
|
||||
F_SETLKW64
|
||||
F_SETOWN
|
||||
F_SHARE
|
||||
F_SHLCK
|
||||
F_UNLCK
|
||||
F_UNSHARE
|
||||
F_WRACC
|
||||
F_WRDNY
|
||||
F_WRLCK
|
||||
O_ACCMODE
|
||||
O_ALIAS
|
||||
O_APPEND
|
||||
O_ASYNC
|
||||
O_BINARY
|
||||
O_CREAT
|
||||
O_DEFER
|
||||
O_DIRECT
|
||||
O_DIRECTORY
|
||||
O_DSYNC
|
||||
O_EXCL
|
||||
O_EXLOCK
|
||||
O_LARGEFILE
|
||||
O_NDELAY
|
||||
O_NOCTTY
|
||||
O_NOFOLLOW
|
||||
O_NOINHERIT
|
||||
O_NONBLOCK
|
||||
O_RANDOM
|
||||
O_RAW
|
||||
O_RDONLY
|
||||
O_RDWR
|
||||
O_RSRC
|
||||
O_RSYNC
|
||||
O_SEQUENTIAL
|
||||
O_SHLOCK
|
||||
O_SYNC
|
||||
O_TEMPORARY
|
||||
O_TEXT
|
||||
O_TRUNC
|
||||
O_WRONLY
|
||||
);
|
||||
|
||||
# Other items we are prepared to export if requested
|
||||
our @EXPORT_OK = (qw(
|
||||
DN_ACCESS
|
||||
DN_ATTRIB
|
||||
DN_CREATE
|
||||
DN_DELETE
|
||||
DN_MODIFY
|
||||
DN_MULTISHOT
|
||||
DN_RENAME
|
||||
F_ADD_SEALS
|
||||
F_GETLEASE
|
||||
F_GETPIPE_SZ
|
||||
F_GET_SEALS
|
||||
F_GETSIG
|
||||
F_NOTIFY
|
||||
F_SEAL_FUTURE_WRITE
|
||||
F_SEAL_GROW
|
||||
F_SEAL_SEAL
|
||||
F_SEAL_SHRINK
|
||||
F_SEAL_WRITE
|
||||
F_SETLEASE
|
||||
F_SETPIPE_SZ
|
||||
F_SETSIG
|
||||
LOCK_MAND
|
||||
LOCK_READ
|
||||
LOCK_RW
|
||||
LOCK_WRITE
|
||||
O_ALT_IO
|
||||
O_EVTONLY
|
||||
O_IGNORE_CTTY
|
||||
O_NOATIME
|
||||
O_NOLINK
|
||||
O_NOSIGPIPE
|
||||
O_NOTRANS
|
||||
O_SYMLINK
|
||||
O_TMPFILE
|
||||
O_TTY_INIT
|
||||
), map {@{$_}} values %EXPORT_TAGS);
|
||||
|
||||
1;
|
||||
Loading…
Add table
Add a link
Reference in a new issue