NAME
POSIX::1003::FS - POSIX for the file-system
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.
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. When you ask for :constants, you get all, but they are also grouped by tag.
export tag :stat
Export POSIX::1003::FS subroutine stat and POSIX::1003::FS subroutine lstat including their related constants.
S_IFBLK 24576 S_IFSOCK 49152 S_IWGRP 16
S_IFCHR 8192 S_IRGRP 32 S_IWOTH 2
S_IFDIR 16384 S_IROTH 4 S_IWUSR 128
S_IFIFO 4096 S_IRUSR 256 S_IXGRP 8
S_IFLNK 40960 S_IRWXG 56 S_IXOTH 1
S_IFMT 61440 S_IRWXO 7 S_IXUSR 64
S_IFREG 32768 S_IRWXU 448
export tag :access
Exports function access() plus its related constants.
F_OK 0 NAME_MAX 255 W_OK 2
FILENAME_MAX 4096 PATH_MAX 4096 X_OK 1
MAX_CANON 255 R_OK 4
export tag :perms
Load only the permission flags, and related functions mkfifo(), mknod(), mkdir(), and lchown(). Also, the common S_IS* C-level macro are provided as function.
S_IFBLK 24576 S_IFSOCK 49152 S_IWGRP 16
S_IFCHR 8192 S_IRGRP 32 S_IWOTH 2
S_IFDIR 16384 S_IROTH 4 S_IWUSR 128
S_IFIFO 4096 S_IRUSR 256 S_IXGRP 8
S_IFLNK 40960 S_IRWXG 56 S_IXOTH 1
S_IFMT 61440 S_IRWXO 7 S_IXUSR 64
S_IFREG 32768 S_IRWXU 448
export tag :glob
The POSIX::1003::FS subroutine glob and POSIX::1003::FS subroutine fnmatch related constants.
GLOB_ALTDIRFUNC 512 GLOB_NOMAGIC 2048
GLOB_APPEND 32 GLOB_NOMATCH 3
GLOB_BRACE 1024 GLOB_NOSORT 4
GLOB_DOOFFS 8 GLOB_NOSPACE 1
GLOB_ERR 1 GLOB_ONLYDIR 8192
GLOB_MAGCHAR 256 GLOB_PERIOD 128
GLOB_MARK 2 GLOB_TILDE 4096
GLOB_NOCHECK 16 GLOB_TILDE_CHECK 16384
GLOB_NOESCAPE 64
SEE ALSO
This module is part of POSIX-1003 distribution version 0.99_03, built on February 07, 2015. 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-2015 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