NAME
POSIX::1003::FS - POSIX for the file-system
INHERITANCE
POSIX::1003::FS
is a POSIX::1003::Module
SYNOPSIS
use POSIX::1003::FS ':access';
if(access $fn, R_OK) # $fn is readible?
use POSIX::1003::FS qw(mkfifo :stat);
mkfifo($path, S_IRUSR|S_IWUSR) or die $!;
# Absorbed from Unix::Mknod
use POSIX::1003::FS qw(mknod major minor makedev);
use File::stat
my $st = stat '/dev/null';
my $major = major $st->rdev;
my $minor = minor $st->rdev;
mknod '/tmp/special', S_IFCHR|0600, makedev($major,$minor+1);
DESCRIPTION
You may also need POSIX::1003::Pathconf.
See documentation in the base class.
METHODS
See documentation in the base class.
FUNCTIONS
Standard POSIX
- access(FILENAME, FLAGS)
-
Read
man filetestbefore you start using this function! Use the*_OKconstants for FLAGS. - lchown(UID, GID, FILENAMES)
-
Like
chown(), but does not follow symlinks when encountered. Returns the number of files successfully changed.Be Warned that the POSIX specification uses different parameter order. For Perl was decided to accept a list of filenames. Passing more than one filename, however, hinders correct error reporting.
# POSIX specification: # int lchown(const char *path, uid_t owner, gid_t group); # Perl core implementation: my $successes = chown($uid, $gid, @filenames); use POSIX; POSIX::lchown($uid, $gid, $filename) or die $!; use POSIX::1003::FS 'lchown'; my @successes = lchown($uid, $gid, @filenames); - mkdir([FILENAME [MASK]])
-
Simple
CORE::mkdir() - mkfifo(FILENAME, MODE)
- mknod(PATH, MODE, DEVICE)
-
Create a special device node on PATH. Useful symbols for MODE can be collected from Fcntl (import tag
:mode). The DEVICE number is a combination from the type (major number), a sequence number and usage information (combined in a minor number). - rename(OLDNAME, NEWNAME)
-
[0.93] Give a file or directory a new name, the basis of the UNIX
mv('move') command. This will useCORE::rename().Be warned that Window's
renameimplementation will fail when NEWNAME exists. That behavior is not POSIX compliant. On many platforms (especially the older), arenamebetween different partitions is not allowed. - utime(ATIME, MTIME, FILENAMES)
-
Simply
CORE::utime()Be Warned that
POSIX.pmuses a different parameter order than CORE.POSIX::utime($filename, $atime, $mtime); CORE::utime($atime, $mtime, @filenames);
Additional
- S_ISBLK(MODE)
- S_ISCHR(MODE)
- S_ISDIR(MODE)
-
example:
use File::stat 'stat'; if(S_ISDIR(stat($fn)->mode)) ... if(S_ISDIR((lstat $fn)[2])) ... - S_ISFIFO(MODE)
- S_ISLNK(MODE)
- S_ISREG(MODE)
- S_ISSOCK(MODE)
- S_ISVTX(MODE)
- S_ISWHT(MODE)
- major(DEVICE)
- makedev(MAJOR, MINOR)
-
Combine MAJOR and MINOR into a single DEVICE number.
my $device = (stat $filename)[6]; my $device_type = major $device; my $sequence_nr = minor $device; my $device = makedev $major, $minor; mknod $specialfile, $mode, $device; - minor(DEVICE)
CONSTANTS
The following constants are exported, shown here with the values discovered during installation of this module:
F_OK 0 S_IFMT 61440 S_ISVTX 512
FILENAME_MAX 4096 S_IFREG 32768 S_IWGRP 16
MAX_CANON 255 S_IFSOCK 49152 S_IWOTH 2
NAME_MAX 255 S_IRGRP 32 S_IWUSR 128
PATH_MAX 4096 S_IROTH 4 S_IXGRP 8
R_OK 4 S_IRUSR 256 S_IXOTH 1
S_IFBLK 24576 S_IRWXG 56 S_IXUSR 64
S_IFCHR 8192 S_IRWXO 7 W_OK 2
S_IFDIR 16384 S_IRWXU 448 X_OK 1
S_IFIFO 4096 S_ISGID 1024
S_IFLNK 40960 S_ISUID 2048
All functions and constants which start with S_* can be imported using the :stat tag, including all related S_IS* functions.
The *_OK tags can be imported with :access
Permission flags get loaded with :perms.
SEE ALSO
This module is part of POSIX-1003 distribution version 0.96, built on November 28, 2013. Website: http://perl.overmeer.net. The code is based on POSIX, which is released with Perl itself. See also POSIX::Util for additional functionality.
COPYRIGHTS
Copyrights 2011-2013 on the perl code and the related documentation by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html