NAME

POSIX::1003::FS - POSIX for the file-system

INHERITANCE

POSIX::1003::FS
  is a POSIX::1003

SYNOPSIS

use POSIX::1003::FS qw(access R_OK);
if(access($fn, R_OK)) # $fn is readible?

use POSIX::1003::FS qw(mkfifo);
use Fcntl ':mode';
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.

Exporter

FUNCTIONS

Standard POSIX

access(FILENAME, FLAGS)

Read man filetest before you start using this function! Use the *_OK constants for FLAGS.

lchown(UID, GID, FILENAMES)

Like chown(), but does not follow symlinks when encountered. Returns the number of files successfully changed.

Warning, POSIX uses different parameter order:

# 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);
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).

utime(ATIME, MTIME, FILENAMES)

Simply CORE::utime()

Warning, POSIX.pm uses a different parameter order than core.

POSIX::utime($filename, $atime, $mtime);
CORE::utime($atime, $mtime, @filenames);

Additional

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:

The constant names for this math module are inserted here during installation.

SEE ALSO

This module is part of POSIX-1003 distribution version 0.07, built on December 28, 2011. Website: http://perl.overmeer.net. The code is based on POSIX, which is released with Perl itself.

COPYRIGHTS

Copyrights of the perl code and the related documentation by 2011 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