diff options
author | Nitin A Kamble <nitin.a.kamble@intel.com> | 2011-10-19 14:53:17 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-10-24 14:27:35 +0100 |
commit | 8dc5f118832a4aca906239ffed82f72497c37f8e (patch) | |
tree | c53e75b07c0e3ad89907b0ce55efab5d371cea80 /meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch | |
parent | c9883733fed9267b1a936c08500a4caf8dc52d3d (diff) | |
download | openembedded-core-8dc5f118832a4aca906239ffed82f72497c37f8e.tar.gz openembedded-core-8dc5f118832a4aca906239ffed82f72497c37f8e.tar.bz2 openembedded-core-8dc5f118832a4aca906239ffed82f72497c37f8e.tar.xz openembedded-core-8dc5f118832a4aca906239ffed82f72497c37f8e.zip |
perl: upgrade from 5.12.3 to 5.14.2
parallel build fix patches are not needed as they are upstream now.
Got a new set of debian patch set for 5.14.2
perl-rpdepends: fix the autogenerated rdepends mistakes
take out some mdoules which are not going to be built.
[Saul Wold: Remove debug]
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Diffstat (limited to 'meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch')
-rw-r--r-- | meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch | 6585 |
1 files changed, 0 insertions, 6585 deletions
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch deleted file mode 100644 index 26af1f1d9..000000000 --- a/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch +++ /dev/null @@ -1,6585 +0,0 @@ -Upstream-Status:Inappropriate [Backport] - -Imported from perl git tree by Nitin A Kamble <nitin.a.kamble@intel.com> -2011-02-23 - -commit 4feb80ac47a22e7de7d7c1c1d5dfb3d744a2a3a7 -Author: Jerry D. Hedden <jdhedden@cpan.org> -Date: Tue Aug 17 13:17:11 2010 -0400 - - Move POSIX.pm to lib/POSIX.pm to fix autosplitter problem - -diff --git a/MANIFEST b/MANIFEST -index 3036d73..faf8974 100644 ---- a/MANIFEST -+++ b/MANIFEST -@@ -3183,9 +3183,9 @@ ext/POSIX/hints/openbsd.pl Hint for POSIX for named architecture - ext/POSIX/hints/sunos_4.pl Hint for POSIX for named architecture - ext/POSIX/hints/svr4.pl Hint for POSIX for named architecture - ext/POSIX/hints/uts.pl Hint for POSIX for named architecture -+ext/POSIX/lib/POSIX.pm POSIX extension Perl module -+ext/POSIX/lib/POSIX.pod POSIX extension documentation - ext/POSIX/Makefile.PL POSIX extension makefile writer --ext/POSIX/POSIX.pm POSIX extension Perl module --ext/POSIX/POSIX.pod POSIX extension documentation - ext/POSIX/POSIX.xs POSIX extension external subroutines - ext/POSIX/t/is.t See if POSIX isxxx() work - ext/POSIX/t/math.t Basic math tests for POSIX -diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL -index 292882c..07c3841 100644 ---- a/ext/POSIX/Makefile.PL -+++ b/ext/POSIX/Makefile.PL -@@ -18,7 +18,8 @@ WriteMakefile( - NAME => 'POSIX', - @libs, - XSPROTOARG => '-noprototypes', # XXX remove later? -- VERSION_FROM => 'POSIX.pm', -+ VERSION_FROM => 'lib/POSIX.pm', -+ ABSTRACT_FROM => 'lib/POSIX.pod', - realclean => {FILES=> 'const-c.inc const-xs.inc'}, - ); - -diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm -deleted file mode 100644 -index ffbd9de..0000000 ---- a/ext/POSIX/POSIX.pm -+++ /dev/null -@@ -1,1042 +0,0 @@ --package POSIX; --use strict; --use warnings; -- --our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = (); -- --our $VERSION = "1.19"; -- --use AutoLoader; -- --use XSLoader (); -- --use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD -- F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND -- O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC -- O_WRONLY SEEK_CUR SEEK_END SEEK_SET -- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG -- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID -- S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR); -- --# Grandfather old foo_h form to new :foo_h form --my $loaded; -- --sub import { -- load_imports() unless $loaded++; -- my $this = shift; -- my @list = map { m/^\w+_h$/ ? ":$_" : $_ } @_; -- local $Exporter::ExportLevel = 1; -- Exporter::import($this,@list); --} -- --sub croak { require Carp; goto &Carp::croak } --# declare usage to assist AutoLoad --sub usage; -- --XSLoader::load 'POSIX', $VERSION; -- --sub AUTOLOAD { -- no strict; -- no warnings 'uninitialized'; -- if ($AUTOLOAD =~ /::(_?[a-z])/) { -- # require AutoLoader; -- $AutoLoader::AUTOLOAD = $AUTOLOAD; -- goto &AutoLoader::AUTOLOAD -- } -- local $! = 0; -- my $constname = $AUTOLOAD; -- $constname =~ s/.*:://; -- my ($error, $val) = constant($constname); -- croak $error if $error; -- *$AUTOLOAD = sub { $val }; -- -- goto &$AUTOLOAD; --} -- --package POSIX::SigAction; -- --use AutoLoader 'AUTOLOAD'; -- --package POSIX::SigRt; -- --use AutoLoader 'AUTOLOAD'; -- --use Tie::Hash; -- --use vars qw($SIGACTION_FLAGS $_SIGRTMIN $_SIGRTMAX $_sigrtn @ISA); --@POSIX::SigRt::ISA = qw(Tie::StdHash); -- --$SIGACTION_FLAGS = 0; -- --tie %POSIX::SIGRT, 'POSIX::SigRt'; -- --sub DESTROY {}; -- --package POSIX; -- --1; --__END__ -- --sub usage { -- my ($mess) = @_; -- croak "Usage: POSIX::$mess"; --} -- --sub redef { -- my ($mess) = @_; -- croak "Use method $mess instead"; --} -- --sub unimpl { -- my ($mess) = @_; -- $mess =~ s/xxx//; -- croak "Unimplemented: POSIX::$mess"; --} -- --sub assert { -- usage "assert(expr)" if @_ != 1; -- if (!$_[0]) { -- croak "Assertion failed"; -- } --} -- --sub tolower { -- usage "tolower(string)" if @_ != 1; -- lc($_[0]); --} -- --sub toupper { -- usage "toupper(string)" if @_ != 1; -- uc($_[0]); --} -- --sub closedir { -- usage "closedir(dirhandle)" if @_ != 1; -- CORE::closedir($_[0]); --} -- --sub opendir { -- usage "opendir(directory)" if @_ != 1; -- my $dirhandle; -- CORE::opendir($dirhandle, $_[0]) -- ? $dirhandle -- : undef; --} -- --sub readdir { -- usage "readdir(dirhandle)" if @_ != 1; -- CORE::readdir($_[0]); --} -- --sub rewinddir { -- usage "rewinddir(dirhandle)" if @_ != 1; -- CORE::rewinddir($_[0]); --} -- --sub errno { -- usage "errno()" if @_ != 0; -- $! + 0; --} -- --sub creat { -- usage "creat(filename, mode)" if @_ != 2; -- &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1]); --} -- --sub fcntl { -- usage "fcntl(filehandle, cmd, arg)" if @_ != 3; -- CORE::fcntl($_[0], $_[1], $_[2]); --} -- --sub getgrgid { -- usage "getgrgid(gid)" if @_ != 1; -- CORE::getgrgid($_[0]); --} -- --sub getgrnam { -- usage "getgrnam(name)" if @_ != 1; -- CORE::getgrnam($_[0]); --} -- --sub atan2 { -- usage "atan2(x,y)" if @_ != 2; -- CORE::atan2($_[0], $_[1]); --} -- --sub cos { -- usage "cos(x)" if @_ != 1; -- CORE::cos($_[0]); --} -- --sub exp { -- usage "exp(x)" if @_ != 1; -- CORE::exp($_[0]); --} -- --sub fabs { -- usage "fabs(x)" if @_ != 1; -- CORE::abs($_[0]); --} -- --sub log { -- usage "log(x)" if @_ != 1; -- CORE::log($_[0]); --} -- --sub pow { -- usage "pow(x,exponent)" if @_ != 2; -- $_[0] ** $_[1]; --} -- --sub sin { -- usage "sin(x)" if @_ != 1; -- CORE::sin($_[0]); --} -- --sub sqrt { -- usage "sqrt(x)" if @_ != 1; -- CORE::sqrt($_[0]); --} -- --sub getpwnam { -- usage "getpwnam(name)" if @_ != 1; -- CORE::getpwnam($_[0]); --} -- --sub getpwuid { -- usage "getpwuid(uid)" if @_ != 1; -- CORE::getpwuid($_[0]); --} -- --sub longjmp { -- unimpl "longjmp() is C-specific: use die instead"; --} -- --sub setjmp { -- unimpl "setjmp() is C-specific: use eval {} instead"; --} -- --sub siglongjmp { -- unimpl "siglongjmp() is C-specific: use die instead"; --} -- --sub sigsetjmp { -- unimpl "sigsetjmp() is C-specific: use eval {} instead"; --} -- --sub kill { -- usage "kill(pid, sig)" if @_ != 2; -- CORE::kill $_[1], $_[0]; --} -- --sub raise { -- usage "raise(sig)" if @_ != 1; -- CORE::kill $_[0], $$; # Is this good enough? --} -- --sub offsetof { -- unimpl "offsetof() is C-specific, stopped"; --} -- --sub clearerr { -- redef "IO::Handle::clearerr()"; --} -- --sub fclose { -- redef "IO::Handle::close()"; --} -- --sub fdopen { -- redef "IO::Handle::new_from_fd()"; --} -- --sub feof { -- redef "IO::Handle::eof()"; --} -- --sub fgetc { -- redef "IO::Handle::getc()"; --} -- --sub fgets { -- redef "IO::Handle::gets()"; --} -- --sub fileno { -- redef "IO::Handle::fileno()"; --} -- --sub fopen { -- redef "IO::File::open()"; --} -- --sub fprintf { -- unimpl "fprintf() is C-specific--use printf instead"; --} -- --sub fputc { -- unimpl "fputc() is C-specific--use print instead"; --} -- --sub fputs { -- unimpl "fputs() is C-specific--use print instead"; --} -- --sub fread { -- unimpl "fread() is C-specific--use read instead"; --} -- --sub freopen { -- unimpl "freopen() is C-specific--use open instead"; --} -- --sub fscanf { -- unimpl "fscanf() is C-specific--use <> and regular expressions instead"; --} -- --sub fseek { -- redef "IO::Seekable::seek()"; --} -- --sub fsync { -- redef "IO::Handle::sync()"; --} -- --sub ferror { -- redef "IO::Handle::error()"; --} -- --sub fflush { -- redef "IO::Handle::flush()"; --} -- --sub fgetpos { -- redef "IO::Seekable::getpos()"; --} -- --sub fsetpos { -- redef "IO::Seekable::setpos()"; --} -- --sub ftell { -- redef "IO::Seekable::tell()"; --} -- --sub fwrite { -- unimpl "fwrite() is C-specific--use print instead"; --} -- --sub getc { -- usage "getc(handle)" if @_ != 1; -- CORE::getc($_[0]); --} -- --sub getchar { -- usage "getchar()" if @_ != 0; -- CORE::getc(STDIN); --} -- --sub gets { -- usage "gets()" if @_ != 0; -- scalar <STDIN>; --} -- --sub perror { -- print STDERR "@_: " if @_; -- print STDERR $!,"\n"; --} -- --sub printf { -- usage "printf(pattern, args...)" if @_ < 1; -- CORE::printf STDOUT @_; --} -- --sub putc { -- unimpl "putc() is C-specific--use print instead"; --} -- --sub putchar { -- unimpl "putchar() is C-specific--use print instead"; --} -- --sub puts { -- unimpl "puts() is C-specific--use print instead"; --} -- --sub remove { -- usage "remove(filename)" if @_ != 1; -- (-d $_[0]) ? CORE::rmdir($_[0]) : CORE::unlink($_[0]); --} -- --sub rename { -- usage "rename(oldfilename, newfilename)" if @_ != 2; -- CORE::rename($_[0], $_[1]); --} -- --sub rewind { -- usage "rewind(filehandle)" if @_ != 1; -- CORE::seek($_[0],0,0); --} -- --sub scanf { -- unimpl "scanf() is C-specific--use <> and regular expressions instead"; --} -- --sub sprintf { -- usage "sprintf(pattern,args)" if @_ == 0; -- CORE::sprintf(shift,@_); --} -- --sub sscanf { -- unimpl "sscanf() is C-specific--use regular expressions instead"; --} -- --sub tmpfile { -- redef "IO::File::new_tmpfile()"; --} -- --sub ungetc { -- redef "IO::Handle::ungetc()"; --} -- --sub vfprintf { -- unimpl "vfprintf() is C-specific"; --} -- --sub vprintf { -- unimpl "vprintf() is C-specific"; --} -- --sub vsprintf { -- unimpl "vsprintf() is C-specific"; --} -- --sub abs { -- usage "abs(x)" if @_ != 1; -- CORE::abs($_[0]); --} -- --sub atexit { -- unimpl "atexit() is C-specific: use END {} instead"; --} -- --sub atof { -- unimpl "atof() is C-specific, stopped"; --} -- --sub atoi { -- unimpl "atoi() is C-specific, stopped"; --} -- --sub atol { -- unimpl "atol() is C-specific, stopped"; --} -- --sub bsearch { -- unimpl "bsearch() not supplied"; --} -- --sub calloc { -- unimpl "calloc() is C-specific, stopped"; --} -- --sub div { -- unimpl "div() is C-specific, use /, % and int instead"; --} -- --sub exit { -- usage "exit(status)" if @_ != 1; -- CORE::exit($_[0]); --} -- --sub free { -- unimpl "free() is C-specific, stopped"; --} -- --sub getenv { -- usage "getenv(name)" if @_ != 1; -- $ENV{$_[0]}; --} -- --sub labs { -- unimpl "labs() is C-specific, use abs instead"; --} -- --sub ldiv { -- unimpl "ldiv() is C-specific, use /, % and int instead"; --} -- --sub malloc { -- unimpl "malloc() is C-specific, stopped"; --} -- --sub qsort { -- unimpl "qsort() is C-specific, use sort instead"; --} -- --sub rand { -- unimpl "rand() is non-portable, use Perl's rand instead"; --} -- --sub realloc { -- unimpl "realloc() is C-specific, stopped"; --} -- --sub srand { -- unimpl "srand()"; --} -- --sub system { -- usage "system(command)" if @_ != 1; -- CORE::system($_[0]); --} -- --sub memchr { -- unimpl "memchr() is C-specific, use index() instead"; --} -- --sub memcmp { -- unimpl "memcmp() is C-specific, use eq instead"; --} -- --sub memcpy { -- unimpl "memcpy() is C-specific, use = instead"; --} -- --sub memmove { -- unimpl "memmove() is C-specific, use = instead"; --} -- --sub memset { -- unimpl "memset() is C-specific, use x instead"; --} -- --sub strcat { -- unimpl "strcat() is C-specific, use .= instead"; --} -- --sub strchr { -- unimpl "strchr() is C-specific, use index() instead"; --} -- --sub strcmp { -- unimpl "strcmp() is C-specific, use eq instead"; --} -- --sub strcpy { -- unimpl "strcpy() is C-specific, use = instead"; --} -- --sub strcspn { -- unimpl "strcspn() is C-specific, use regular expressions instead"; --} -- --sub strerror { -- usage "strerror(errno)" if @_ != 1; -- local $! = $_[0]; -- $! . ""; --} -- --sub strlen { -- unimpl "strlen() is C-specific, use length instead"; --} -- --sub strncat { -- unimpl "strncat() is C-specific, use .= instead"; --} -- --sub strncmp { -- unimpl "strncmp() is C-specific, use eq instead"; --} -- --sub strncpy { -- unimpl "strncpy() is C-specific, use = instead"; --} -- --sub strpbrk { -- unimpl "strpbrk() is C-specific, stopped"; --} -- --sub strrchr { -- unimpl "strrchr() is C-specific, use rindex() instead"; --} -- --sub strspn { -- unimpl "strspn() is C-specific, stopped"; --} -- --sub strstr { -- usage "strstr(big, little)" if @_ != 2; -- CORE::index($_[0], $_[1]); --} -- --sub strtok { -- unimpl "strtok() is C-specific, stopped"; --} -- --sub chmod { -- usage "chmod(mode, filename)" if @_ != 2; -- CORE::chmod($_[0], $_[1]); --} -- --sub fstat { -- usage "fstat(fd)" if @_ != 1; -- local *TMP; -- CORE::open(TMP, "<&$_[0]"); # Gross. -- my @l = CORE::stat(TMP); -- CORE::close(TMP); -- @l; --} -- --sub mkdir { -- usage "mkdir(directoryname, mode)" if @_ != 2; -- CORE::mkdir($_[0], $_[1]); --} -- --sub stat { -- usage "stat(filename)" if @_ != 1; -- CORE::stat($_[0]); --} -- --sub umask { -- usage "umask(mask)" if @_ != 1; -- CORE::umask($_[0]); --} -- --sub wait { -- usage "wait()" if @_ != 0; -- CORE::wait(); --} -- --sub waitpid { -- usage "waitpid(pid, options)" if @_ != 2; -- CORE::waitpid($_[0], $_[1]); --} -- --sub gmtime { -- usage "gmtime(time)" if @_ != 1; -- CORE::gmtime($_[0]); --} -- --sub localtime { -- usage "localtime(time)" if @_ != 1; -- CORE::localtime($_[0]); --} -- --sub time { -- usage "time()" if @_ != 0; -- CORE::time; --} -- --sub alarm { -- usage "alarm(seconds)" if @_ != 1; -- CORE::alarm($_[0]); --} -- --sub chdir { -- usage "chdir(directory)" if @_ != 1; -- CORE::chdir($_[0]); --} -- --sub chown { -- usage "chown(uid, gid, filename)" if @_ != 3; -- CORE::chown($_[0], $_[1], $_[2]); --} -- --sub execl { -- unimpl "execl() is C-specific, stopped"; --} -- --sub execle { -- unimpl "execle() is C-specific, stopped"; --} -- --sub execlp { -- unimpl "execlp() is C-specific, stopped"; --} -- --sub execv { -- unimpl "execv() is C-specific, stopped"; --} -- --sub execve { -- unimpl "execve() is C-specific, stopped"; --} -- --sub execvp { -- unimpl "execvp() is C-specific, stopped"; --} -- --sub fork { -- usage "fork()" if @_ != 0; -- CORE::fork; --} -- --sub getegid { -- usage "getegid()" if @_ != 0; -- $) + 0; --} -- --sub geteuid { -- usage "geteuid()" if @_ != 0; -- $> + 0; --} -- --sub getgid { -- usage "getgid()" if @_ != 0; -- $( + 0; --} -- --sub getgroups { -- usage "getgroups()" if @_ != 0; -- my %seen; -- grep(!$seen{$_}++, split(' ', $) )); --} -- --sub getlogin { -- usage "getlogin()" if @_ != 0; -- CORE::getlogin(); --} -- --sub getpgrp { -- usage "getpgrp()" if @_ != 0; -- CORE::getpgrp; --} -- --sub getpid { -- usage "getpid()" if @_ != 0; -- $$; --} -- --sub getppid { -- usage "getppid()" if @_ != 0; -- CORE::getppid; --} -- --sub getuid { -- usage "getuid()" if @_ != 0; -- $<; --} -- --sub isatty { -- usage "isatty(filehandle)" if @_ != 1; -- -t $_[0]; --} -- --sub link { -- usage "link(oldfilename, newfilename)" if @_ != 2; -- CORE::link($_[0], $_[1]); --} -- --sub rmdir { -- usage "rmdir(directoryname)" if @_ != 1; -- CORE::rmdir($_[0]); --} -- --sub setbuf { -- redef "IO::Handle::setbuf()"; --} -- --sub setvbuf { -- redef "IO::Handle::setvbuf()"; --} -- --sub sleep { -- usage "sleep(seconds)" if @_ != 1; -- $_[0] - CORE::sleep($_[0]); --} -- --sub unlink { -- usage "unlink(filename)" if @_ != 1; -- CORE::unlink($_[0]); --} -- --sub utime { -- usage "utime(filename, atime, mtime)" if @_ != 3; -- CORE::utime($_[1], $_[2], $_[0]); --} -- --sub load_imports { --%EXPORT_TAGS = ( -- -- assert_h => [qw(assert NDEBUG)], -- -- ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower -- isprint ispunct isspace isupper isxdigit tolower toupper)], -- -- dirent_h => [], -- -- errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT -- EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED -- ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT -- EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS -- EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK -- EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH -- ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM -- ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR -- ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM -- EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE -- ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT -- ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY -- EUSERS EWOULDBLOCK EXDEV errno)], -- -- fcntl_h => [qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK -- F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK -- O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK -- O_RDONLY O_RDWR O_TRUNC O_WRONLY -- creat -- SEEK_CUR SEEK_END SEEK_SET -- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU -- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID -- S_IWGRP S_IWOTH S_IWUSR)], -- -- float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG -- DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP -- DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP -- FLT_DIG FLT_EPSILON FLT_MANT_DIG -- FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP -- FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP -- FLT_RADIX FLT_ROUNDS -- LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG -- LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP -- LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)], -- -- grp_h => [], -- -- limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX -- INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON -- MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX -- PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN -- SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX -- ULONG_MAX USHRT_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX -- _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT -- _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX -- _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX -- _POSIX_STREAM_MAX _POSIX_TZNAME_MAX)], -- -- locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES -- LC_MONETARY LC_NUMERIC LC_TIME NULL -- localeconv setlocale)], -- -- math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod -- frexp ldexp log10 modf pow sinh tan tanh)], -- -- pwd_h => [], -- -- setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)], -- -- signal_h => [qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK -- SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM -- SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL -- SIGPIPE %SIGRT SIGRTMIN SIGRTMAX SIGQUIT SIGSEGV SIGSTOP -- SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 -- SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK -- raise sigaction signal sigpending sigprocmask sigsuspend)], -- -- stdarg_h => [], -- -- stddef_h => [qw(NULL offsetof)], -- -- stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid -- L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET -- STREAM_MAX TMP_MAX stderr stdin stdout -- clearerr fclose fdopen feof ferror fflush fgetc fgetpos -- fgets fopen fprintf fputc fputs fread freopen -- fscanf fseek fsetpos ftell fwrite getchar gets -- perror putc putchar puts remove rewind -- scanf setbuf setvbuf sscanf tmpfile tmpnam -- ungetc vfprintf vprintf vsprintf)], -- -- stdlib_h => [qw(EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX NULL RAND_MAX -- abort atexit atof atoi atol bsearch calloc div -- free getenv labs ldiv malloc mblen mbstowcs mbtowc -- qsort realloc strtod strtol strtoul wcstombs wctomb)], -- -- string_h => [qw(NULL memchr memcmp memcpy memmove memset strcat -- strchr strcmp strcoll strcpy strcspn strerror strlen -- strncat strncmp strncpy strpbrk strrchr strspn strstr -- strtok strxfrm)], -- -- sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU -- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG -- S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR -- fstat mkfifo)], -- -- sys_times_h => [], -- -- sys_types_h => [], -- -- sys_utsname_h => [qw(uname)], -- -- sys_wait_h => [qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED -- WNOHANG WSTOPSIG WTERMSIG WUNTRACED)], -- -- termios_h => [qw( B0 B110 B1200 B134 B150 B1800 B19200 B200 B2400 -- B300 B38400 B4800 B50 B600 B75 B9600 BRKINT CLOCAL -- CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB ECHO ECHOE ECHOK -- ECHONL HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR -- INLCR INPCK ISIG ISTRIP IXOFF IXON NCCS NOFLSH OPOST -- PARENB PARMRK PARODD TCIFLUSH TCIOFF TCIOFLUSH TCION -- TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW -- TOSTOP VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART -- VSTOP VSUSP VTIME -- cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcdrain -- tcflow tcflush tcgetattr tcsendbreak tcsetattr )], -- -- time_h => [qw(CLK_TCK CLOCKS_PER_SEC NULL asctime clock ctime -- difftime mktime strftime tzset tzname)], -- -- unistd_h => [qw(F_OK NULL R_OK SEEK_CUR SEEK_END SEEK_SET -- STDERR_FILENO STDIN_FILENO STDOUT_FILENO W_OK X_OK -- _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON -- _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX -- _PC_PIPE_BUF _PC_VDISABLE _POSIX_CHOWN_RESTRICTED -- _POSIX_JOB_CONTROL _POSIX_NO_TRUNC _POSIX_SAVED_IDS -- _POSIX_VDISABLE _POSIX_VERSION _SC_ARG_MAX -- _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL -- _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS -- _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION -- _exit access ctermid cuserid -- dup2 dup execl execle execlp execv execve execvp -- fpathconf fsync getcwd getegid geteuid getgid getgroups -- getpid getuid isatty lseek pathconf pause setgid setpgid -- setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)], -- -- utime_h => [], -- --); -- --# Exporter::export_tags(); --{ -- # De-duplicate the export list: -- my %export; -- @export{map {@$_} values %EXPORT_TAGS} = (); -- # Doing the de-dup with a temporary hash has the advantage that the SVs in -- # @EXPORT are actually shared hash key sacalars, which will save some memory. -- push @EXPORT, keys %export; --} -- --@EXPORT_OK = qw( -- abs -- alarm -- atan2 -- chdir -- chmod -- chown -- close -- closedir -- cos -- exit -- exp -- fcntl -- fileno -- fork -- getc -- getgrgid -- getgrnam -- getlogin -- getpgrp -- getppid -- getpwnam -- getpwuid -- gmtime -- isatty -- kill -- lchown -- link -- localtime -- log -- mkdir -- nice -- open -- opendir -- pipe -- printf -- rand -- read -- readdir -- rename -- rewinddir -- rmdir -- sin -- sleep -- sprintf -- sqrt -- srand -- stat -- system -- time -- times -- umask -- unlink -- utime -- wait -- waitpid -- write --); -- --require Exporter; --} -- --package POSIX::SigAction; -- --sub new { bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0, SAFE => 0}, $_[0] } --sub handler { $_[0]->{HANDLER} = $_[1] if @_ > 1; $_[0]->{HANDLER} }; --sub mask { $_[0]->{MASK} = $_[1] if @_ > 1; $_[0]->{MASK} }; --sub flags { $_[0]->{FLAGS} = $_[1] if @_ > 1; $_[0]->{FLAGS} }; --sub safe { $_[0]->{SAFE} = $_[1] if @_ > 1; $_[0]->{SAFE} }; -- --package POSIX::SigRt; -- -- --sub _init { -- $_SIGRTMIN = &POSIX::SIGRTMIN; -- $_SIGRTMAX = &POSIX::SIGRTMAX; -- $_sigrtn = $_SIGRTMAX - $_SIGRTMIN; --} -- --sub _croak { -- &_init unless defined $_sigrtn; -- die "POSIX::SigRt not available" unless defined $_sigrtn && $_sigrtn > 0; --} -- --sub _getsig { -- &_croak; -- my $rtsig = $_[0]; -- # Allow (SIGRT)?MIN( + n)?, a common idiom when doing these things in C. -- $rtsig = $_SIGRTMIN + ($1 || 0) -- if $rtsig =~ /^(?:(?:SIG)?RT)?MIN(\s*\+\s*(\d+))?$/; -- return $rtsig; --} -- --sub _exist { -- my $rtsig = _getsig($_[1]); -- my $ok = $rtsig >= $_SIGRTMIN && $rtsig <= $_SIGRTMAX; -- ($rtsig, $ok); --} -- --sub _check { -- my ($rtsig, $ok) = &_exist; -- die "No POSIX::SigRt signal $_[1] (valid range SIGRTMIN..SIGRTMAX, or $_SIGRTMIN..$_SIGRTMAX)" -- unless $ok; -- return $rtsig; --} -- --sub new { -- my ($rtsig, $handler, $flags) = @_; -- my $sigset = POSIX::SigSet->new($rtsig); -- my $sigact = POSIX::SigAction->new($handler, -- $sigset, -- $flags); -- POSIX::sigaction($rtsig, $sigact); --} -- --sub EXISTS { &_exist } --sub FETCH { my $rtsig = &_check; -- my $oa = POSIX::SigAction->new(); -- POSIX::sigaction($rtsig, undef, $oa); -- return $oa->{HANDLER} } --sub STORE { my $rtsig = &_check; new($rtsig, $_[2], $SIGACTION_FLAGS) } --sub DELETE { delete $SIG{ &_check } } --sub CLEAR { &_exist; delete @SIG{ &POSIX::SIGRTMIN .. &POSIX::SIGRTMAX } } --sub SCALAR { &_croak; $_sigrtn + 1 } -diff --git a/ext/POSIX/POSIX.pod b/ext/POSIX/POSIX.pod -deleted file mode 100644 -index 64852e9..0000000 ---- a/ext/POSIX/POSIX.pod -+++ /dev/null -@@ -1,2218 +0,0 @@ --=head1 NAME -- --POSIX - Perl interface to IEEE Std 1003.1 -- --=head1 SYNOPSIS -- -- use POSIX; -- use POSIX qw(setsid); -- use POSIX qw(:errno_h :fcntl_h); -- -- printf "EINTR is %d\n", EINTR; -- -- $sess_id = POSIX::setsid(); -- -- $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644); -- # note: that's a filedescriptor, *NOT* a filehandle -- --=head1 DESCRIPTION -- --The POSIX module permits you to access all (or nearly all) the standard --POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish --interfaces. -- --I<Everything is exported by default> with the exception of any POSIX --functions with the same name as a built-in Perl function, such as --C<abs>, C<alarm>, C<rmdir>, C<write>, etc.., which will be exported --only if you ask for them explicitly. This is an unfortunate backwards --compatibility feature. You can stop the exporting by saying C<use --POSIX ()> and then use the fully qualified names (ie. C<POSIX::SEEK_END>). -- --This document gives a condensed list of the features available in the POSIX --module. Consult your operating system's manpages for general information on --most features. Consult L<perlfunc> for functions which are noted as being --identical to Perl's builtin functions. -- --The first section describes POSIX functions from the 1003.1 specification. --The second section describes some classes for signal objects, TTY objects, --and other miscellaneous objects. The remaining sections list various --constants and macros in an organization which roughly follows IEEE Std --1003.1b-1993. -- --=head1 NOTE -- --The POSIX module is probably the most complex Perl module supplied with --the standard distribution. It incorporates autoloading, namespace games, --and dynamic loading of code that's in Perl, C, or both. It's a great --source of wisdom. -- --=head1 CAVEATS -- --A few functions are not implemented because they are C specific. If you --attempt to call these, they will print a message telling you that they --aren't implemented, and suggest using the Perl equivalent should one --exist. For example, trying to access the setjmp() call will elicit the --message "setjmp() is C-specific: use eval {} instead". -- --Furthermore, some evil vendors will claim 1003.1 compliance, but in fact --are not so: they will not pass the PCTS (POSIX Compliance Test Suites). --For example, one vendor may not define EDEADLK, or the semantics of the --errno values set by open(2) might not be quite right. Perl does not --attempt to verify POSIX compliance. That means you can currently --successfully say "use POSIX", and then later in your program you find --that your vendor has been lax and there's no usable ICANON macro after --all. This could be construed to be a bug. -- --=head1 FUNCTIONS -- --=over 8 -- --=item _exit -- --This is identical to the C function C<_exit()>. It exits the program --immediately which means among other things buffered I/O is B<not> flushed. -- --Note that when using threads and in Linux this is B<not> a good way to --exit a thread because in Linux processes and threads are kind of the --same thing (Note: while this is the situation in early 2003 there are --projects under way to have threads with more POSIXly semantics in Linux). --If you want not to return from a thread, detach the thread. -- --=item abort -- --This is identical to the C function C<abort()>. It terminates the --process with a C<SIGABRT> signal unless caught by a signal handler or --if the handler does not return normally (it e.g. does a C<longjmp>). -- --=item abs -- --This is identical to Perl's builtin C<abs()> function, returning --the absolute value of its numerical argument. -- --=item access -- --Determines the accessibility of a file. -- -- if( POSIX::access( "/", &POSIX::R_OK ) ){ -- print "have read permission\n"; -- } -- --Returns C<undef> on failure. Note: do not use C<access()> for --security purposes. Between the C<access()> call and the operation --you are preparing for the permissions might change: a classic --I<race condition>. -- --=item acos -- --This is identical to the C function C<acos()>, returning --the arcus cosine of its numerical argument. See also L<Math::Trig>. -- --=item alarm -- --This is identical to Perl's builtin C<alarm()> function, --either for arming or disarming the C<SIGARLM> timer. -- --=item asctime -- --This is identical to the C function C<asctime()>. It returns --a string of the form -- -- "Fri Jun 2 18:22:13 2000\n\0" -- --and it is called thusly -- -- $asctime = asctime($sec, $min, $hour, $mday, $mon, $year, -- $wday, $yday, $isdst); -- --The C<$mon> is zero-based: January equals C<0>. The C<$year> is --1900-based: 2001 equals C<101>. C<$wday> and C<$yday> default to zero --(and are usually ignored anyway), and C<$isdst> defaults to -1. -- --=item asin -- --This is identical to the C function C<asin()>, returning --the arcus sine of its numerical argument. See also L<Math::Trig>. -- --=item assert -- --Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module --to achieve similar things. -- --=item atan -- --This is identical to the C function C<atan()>, returning the --arcus tangent of its numerical argument. See also L<Math::Trig>. -- --=item atan2 -- --This is identical to Perl's builtin C<atan2()> function, returning --the arcus tangent defined by its two numerical arguments, the I<y> --coordinate and the I<x> coordinate. See also L<Math::Trig>. -- --=item atexit -- --atexit() is C-specific: use C<END {}> instead, see L<perlsub>. -- --=item atof -- --atof() is C-specific. Perl converts strings to numbers transparently. --If you need to force a scalar to a number, add a zero to it. -- --=item atoi -- --atoi() is C-specific. Perl converts strings to numbers transparently. --If you need to force a scalar to a number, add a zero to it. --If you need to have just the integer part, see L<perlfunc/int>. -- --=item atol -- --atol() is C-specific. Perl converts strings to numbers transparently. --If you need to force a scalar to a number, add a zero to it. --If you need to have just the integer part, see L<perlfunc/int>. -- --=item bsearch -- --bsearch() not supplied. For doing binary search on wordlists, --see L<Search::Dict>. -- --=item calloc -- --calloc() is C-specific. Perl does memory management transparently. -- --=item ceil -- --This is identical to the C function C<ceil()>, returning the smallest --integer value greater than or equal to the given numerical argument. -- --=item chdir -- --This is identical to Perl's builtin C<chdir()> function, allowing --one to change the working (default) directory, see L<perlfunc/chdir>. -- --=item chmod -- --This is identical to Perl's builtin C<chmod()> function, allowing --one to change file and directory permissions, see L<perlfunc/chmod>. -- --=item chown -- --This is identical to Perl's builtin C<chown()> function, allowing one --to change file and directory owners and groups, see L<perlfunc/chown>. -- --=item clearerr -- --Use the method C<IO::Handle::clearerr()> instead, to reset the error --state (if any) and EOF state (if any) of the given stream. -- --=item clock -- --This is identical to the C function C<clock()>, returning the --amount of spent processor time in microseconds. -- --=item close -- --Close the file. This uses file descriptors such as those obtained by calling --C<POSIX::open>. -- -- $fd = POSIX::open( "foo", &POSIX::O_RDONLY ); -- POSIX::close( $fd ); -- --Returns C<undef> on failure. -- --See also L<perlfunc/close>. -- --=item closedir -- --This is identical to Perl's builtin C<closedir()> function for closing --a directory handle, see L<perlfunc/closedir>. -- --=item cos -- --This is identical to Perl's builtin C<cos()> function, for returning --the cosine of its numerical argument, see L<perlfunc/cos>. --See also L<Math::Trig>. -- --=item cosh -- --This is identical to the C function C<cosh()>, for returning --the hyperbolic cosine of its numeric argument. See also L<Math::Trig>. -- --=item creat -- --Create a new file. This returns a file descriptor like the ones returned by --C<POSIX::open>. Use C<POSIX::close> to close the file. -- -- $fd = POSIX::creat( "foo", 0611 ); -- POSIX::close( $fd ); -- --See also L<perlfunc/sysopen> and its C<O_CREAT> flag. -- --=item ctermid -- --Generates the path name for the controlling terminal. -- -- $path = POSIX::ctermid(); -- --=item ctime -- --This is identical to the C function C<ctime()> and equivalent --to C<asctime(localtime(...))>, see L</asctime> and L</localtime>. -- --=item cuserid -- --Get the login name of the owner of the current process. -- -- $name = POSIX::cuserid(); -- --=item difftime -- --This is identical to the C function C<difftime()>, for returning --the time difference (in seconds) between two times (as returned --by C<time()>), see L</time>. -- --=item div -- --div() is C-specific, use L<perlfunc/int> on the usual C</> division and --the modulus C<%>. -- --=item dup -- --This is similar to the C function C<dup()>, for duplicating a file --descriptor. -- --This uses file descriptors such as those obtained by calling --C<POSIX::open>. -- --Returns C<undef> on failure. -- --=item dup2 -- --This is similar to the C function C<dup2()>, for duplicating a file --descriptor to an another known file descriptor. -- --This uses file descriptors such as those obtained by calling --C<POSIX::open>. -- --Returns C<undef> on failure. -- --=item errno -- --Returns the value of errno. -- -- $errno = POSIX::errno(); -- --This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>. -- --=item execl -- --execl() is C-specific, see L<perlfunc/exec>. -- --=item execle -- --execle() is C-specific, see L<perlfunc/exec>. -- --=item execlp -- --execlp() is C-specific, see L<perlfunc/exec>. -- --=item execv -- --execv() is C-specific, see L<perlfunc/exec>. -- --=item execve -- --execve() is C-specific, see L<perlfunc/exec>. -- --=item execvp -- --execvp() is C-specific, see L<perlfunc/exec>. -- --=item exit -- --This is identical to Perl's builtin C<exit()> function for exiting the --program, see L<perlfunc/exit>. -- --=item exp -- --This is identical to Perl's builtin C<exp()> function for --returning the exponent (I<e>-based) of the numerical argument, --see L<perlfunc/exp>. -- --=item fabs -- --This is identical to Perl's builtin C<abs()> function for returning --the absolute value of the numerical argument, see L<perlfunc/abs>. -- --=item fclose -- --Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>. -- --=item fcntl -- --This is identical to Perl's builtin C<fcntl()> function, --see L<perlfunc/fcntl>. -- --=item fdopen -- --Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>. -- --=item feof -- --Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>. -- --=item ferror -- --Use method C<IO::Handle::error()> instead. -- --=item fflush -- --Use method C<IO::Handle::flush()> instead. --See also L<perlvar/$OUTPUT_AUTOFLUSH>. -- --=item fgetc -- --Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>. -- --=item fgetpos -- --Use method C<IO::Seekable::getpos()> instead, or see L<L/seek>. -- --=item fgets -- --Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known --as L<perlfunc/readline>. -- --=item fileno -- --Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>. -- --=item floor -- --This is identical to the C function C<floor()>, returning the largest --integer value less than or equal to the numerical argument. -- --=item fmod -- --This is identical to the C function C<fmod()>. -- -- $r = fmod($x, $y); -- --It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>. --The C<$r> has the same sign as C<$x> and magnitude (absolute value) --less than the magnitude of C<$y>. -- --=item fopen -- --Use method C<IO::File::open()> instead, or see L<perlfunc/open>. -- --=item fork -- --This is identical to Perl's builtin C<fork()> function --for duplicating the current process, see L<perlfunc/fork> --and L<perlfork> if you are in Windows. -- --=item fpathconf -- --Retrieves the value of a configurable limit on a file or directory. This --uses file descriptors such as those obtained by calling C<POSIX::open>. -- --The following will determine the maximum length of the longest allowable --pathname on the filesystem which holds C</var/foo>. -- -- $fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY ); -- $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX ); -- --Returns C<undef> on failure. -- --=item fprintf -- --fprintf() is C-specific, see L<perlfunc/printf> instead. -- --=item fputc -- --fputc() is C-specific, see L<perlfunc/print> instead. -- --=item fputs -- --fputs() is C-specific, see L<perlfunc/print> instead. -- --=item fread -- --fread() is C-specific, see L<perlfunc/read> instead. -- --=item free -- --free() is C-specific. Perl does memory management transparently. -- --=item freopen -- --freopen() is C-specific, see L<perlfunc/open> instead. -- --=item frexp -- --Return the mantissa and exponent of a floating-point number. -- -- ($mantissa, $exponent) = POSIX::frexp( 1.234e56 ); -- --=item fscanf -- --fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead. -- --=item fseek -- --Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>. -- --=item fsetpos -- --Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>. -- --=item fstat -- --Get file status. This uses file descriptors such as those obtained by --calling C<POSIX::open>. The data returned is identical to the data from --Perl's builtin C<stat> function. -- -- $fd = POSIX::open( "foo", &POSIX::O_RDONLY ); -- @stats = POSIX::fstat( $fd ); -- --=item fsync -- --Use method C<IO::Handle::sync()> instead. -- --=item ftell -- --Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>. -- --=item fwrite -- --fwrite() is C-specific, see L<perlfunc/print> instead. -- --=item getc -- --This is identical to Perl's builtin C<getc()> function, --see L<perlfunc/getc>. -- --=item getchar -- --Returns one character from STDIN. Identical to Perl's C<getc()>, --see L<perlfunc/getc>. -- --=item getcwd -- --Returns the name of the current working directory. --See also L<Cwd>. -- --=item getegid -- --Returns the effective group identifier. Similar to Perl' s builtin --variable C<$(>, see L<perlvar/$EGID>. -- --=item getenv -- --Returns the value of the specified environment variable. --The same information is available through the C<%ENV> array. -- --=item geteuid -- --Returns the effective user identifier. Identical to Perl's builtin C<$E<gt>> --variable, see L<perlvar/$EUID>. -- --=item getgid -- --Returns the user's real group identifier. Similar to Perl's builtin --variable C<$)>, see L<perlvar/$GID>. -- --=item getgrgid -- --This is identical to Perl's builtin C<getgrgid()> function for --returning group entries by group identifiers, see --L<perlfunc/getgrgid>. -- --=item getgrnam -- --This is identical to Perl's builtin C<getgrnam()> function for --returning group entries by group names, see L<perlfunc/getgrnam>. -- --=item getgroups -- --Returns the ids of the user's supplementary groups. Similar to Perl's --builtin variable C<$)>, see L<perlvar/$GID>. -- --=item getlogin -- --This is identical to Perl's builtin C<getlogin()> function for --returning the user name associated with the current session, see --L<perlfunc/getlogin>. -- --=item getpgrp -- --This is identical to Perl's builtin C<getpgrp()> function for --returning the process group identifier of the current process, see --L<perlfunc/getpgrp>. -- --=item getpid -- --Returns the process identifier. Identical to Perl's builtin --variable C<$$>, see L<perlvar/$PID>. -- --=item getppid -- --This is identical to Perl's builtin C<getppid()> function for --returning the process identifier of the parent process of the current --process , see L<perlfunc/getppid>. -- --=item getpwnam -- --This is identical to Perl's builtin C<getpwnam()> function for --returning user entries by user names, see L<perlfunc/getpwnam>. -- --=item getpwuid -- --This is identical to Perl's builtin C<getpwuid()> function for --returning user entries by user identifiers, see L<perlfunc/getpwuid>. -- --=item gets -- --Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known --as the C<readline()> function, see L<perlfunc/readline>. -- --B<NOTE>: if you have C programs that still use C<gets()>, be very --afraid. The C<gets()> function is a source of endless grief because --it has no buffer overrun checks. It should B<never> be used. The --C<fgets()> function should be preferred instead. -- --=item getuid -- --Returns the user's identifier. Identical to Perl's builtin C<$E<lt>> variable, --see L<perlvar/$UID>. -- --=item gmtime -- --This is identical to Perl's builtin C<gmtime()> function for --converting seconds since the epoch to a date in Greenwich Mean Time, --see L<perlfunc/gmtime>. -- --=item isalnum -- --This is identical to the C function, except that it can apply to a --single character or to a whole string. Note that locale settings may --affect what characters are considered C<isalnum>. Does not work on --Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:alnum:]]/> construct instead, or possibly --the C</\w/> construct. -- --=item isalpha -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<isalpha>. Does not work --on Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:alpha:]]/> construct instead. -- --=item isatty -- --Returns a boolean indicating whether the specified filehandle is connected --to a tty. Similar to the C<-t> operator, see L<perlfunc/-X>. -- --=item iscntrl -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<iscntrl>. Does not work --on Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:cntrl:]]/> construct instead. -- --=item isdigit -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<isdigit> (unlikely, but --still possible). Does not work on Unicode characters code point 256 --or higher. Consider using regular expressions and the C</[[:digit:]]/> --construct instead, or the C</\d/> construct. -- --=item isgraph -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<isgraph>. Does not work --on Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:graph:]]/> construct instead. -- --=item islower -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<islower>. Does not work --on Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:lower:]]/> construct instead. Do B<not> use --C</[a-z]/>. -- --=item isprint -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<isprint>. Does not work --on Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:print:]]/> construct instead. -- --=item ispunct -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<ispunct>. Does not work --on Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:punct:]]/> construct instead. -- --=item isspace -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<isspace>. Does not work --on Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:space:]]/> construct instead, or the C</\s/> --construct. (Note that C</\s/> and C</[[:space:]]/> are slightly --different in that C</[[:space:]]/> can normally match a vertical tab, --while C</\s/> does not.) -- --=item isupper -- --This is identical to the C function, except that it can apply to --a single character or to a whole string. Note that locale settings --may affect what characters are considered C<isupper>. Does not work --on Unicode characters code point 256 or higher. Consider using regular --expressions and the C</[[:upper:]]/> construct instead. Do B<not> use --C</[A-Z]/>. -- --=item isxdigit -- --This is identical to the C function, except that it can apply to a single --character or to a whole string. Note that locale settings may affect what --characters are considered C<isxdigit> (unlikely, but still possible). --Does not work on Unicode characters code point 256 or higher. --Consider using regular expressions and the C</[[:xdigit:]]/> --construct instead, or simply C</[0-9a-f]/i>. -- --=item kill -- --This is identical to Perl's builtin C<kill()> function for sending --signals to processes (often to terminate them), see L<perlfunc/kill>. -- --=item labs -- --(For returning absolute values of long integers.) --labs() is C-specific, see L<perlfunc/abs> instead. -- --=item lchown -- --This is identical to the C function, except the order of arguments is --consistent with Perl's builtin C<chown()> with the added restriction --of only one path, not an list of paths. Does the same thing as the --C<chown()> function but changes the owner of a symbolic link instead --of the file the symbolic link points to. -- --=item ldexp -- --This is identical to the C function C<ldexp()> --for multiplying floating point numbers with powers of two. -- -- $x_quadrupled = POSIX::ldexp($x, 2); -- --=item ldiv -- --(For computing dividends of long integers.) --ldiv() is C-specific, use C</> and C<int()> instead. -- --=item link -- --This is identical to Perl's builtin C<link()> function --for creating hard links into files, see L<perlfunc/link>. -- --=item localeconv -- --Get numeric formatting information. Returns a reference to a hash --containing the current locale formatting values. -- --Here is how to query the database for the B<de> (Deutsch or German) locale. -- -- $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" ); -- print "Locale = $loc\n"; -- $lconv = POSIX::localeconv(); -- print "decimal_point = ", $lconv->{decimal_point}, "\n"; -- print "thousands_sep = ", $lconv->{thousands_sep}, "\n"; -- print "grouping = ", $lconv->{grouping}, "\n"; -- print "int_curr_symbol = ", $lconv->{int_curr_symbol}, "\n"; -- print "currency_symbol = ", $lconv->{currency_symbol}, "\n"; -- print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n"; -- print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n"; -- print "mon_grouping = ", $lconv->{mon_grouping}, "\n"; -- print "positive_sign = ", $lconv->{positive_sign}, "\n"; -- print "negative_sign = ", $lconv->{negative_sign}, "\n"; -- print "int_frac_digits = ", $lconv->{int_frac_digits}, "\n"; -- print "frac_digits = ", $lconv->{frac_digits}, "\n"; -- print "p_cs_precedes = ", $lconv->{p_cs_precedes}, "\n"; -- print "p_sep_by_space = ", $lconv->{p_sep_by_space}, "\n"; -- print "n_cs_precedes = ", $lconv->{n_cs_precedes}, "\n"; -- print "n_sep_by_space = ", $lconv->{n_sep_by_space}, "\n"; -- print "p_sign_posn = ", $lconv->{p_sign_posn}, "\n"; -- print "n_sign_posn = ", $lconv->{n_sign_posn}, "\n"; -- --=item localtime -- --This is identical to Perl's builtin C<localtime()> function for --converting seconds since the epoch to a date see L<perlfunc/localtime>. -- --=item log -- --This is identical to Perl's builtin C<log()> function, --returning the natural (I<e>-based) logarithm of the numerical argument, --see L<perlfunc/log>. -- --=item log10 -- --This is identical to the C function C<log10()>, --returning the 10-base logarithm of the numerical argument. --You can also use -- -- sub log10 { log($_[0]) / log(10) } -- --or -- -- sub log10 { log($_[0]) / 2.30258509299405 } -- --or -- -- sub log10 { log($_[0]) * 0.434294481903252 } -- --=item longjmp -- --longjmp() is C-specific: use L<perlfunc/die> instead. -- --=item lseek -- --Move the file's read/write position. This uses file descriptors such as --those obtained by calling C<POSIX::open>. -- -- $fd = POSIX::open( "foo", &POSIX::O_RDONLY ); -- $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET ); -- --Returns C<undef> on failure. -- --=item malloc -- --malloc() is C-specific. Perl does memory management transparently. -- --=item mblen -- --This is identical to the C function C<mblen()>. --Perl does not have any support for the wide and multibyte --characters of the C standards, so this might be a rather --useless function. -- --=item mbstowcs -- --This is identical to the C function C<mbstowcs()>. --Perl does not have any support for the wide and multibyte --characters of the C standards, so this might be a rather --useless function. -- --=item mbtowc -- --This is identical to the C function C<mbtowc()>. --Perl does not have any support for the wide and multibyte --characters of the C standards, so this might be a rather --useless function. -- --=item memchr -- --memchr() is C-specific, see L<perlfunc/index> instead. -- --=item memcmp -- --memcmp() is C-specific, use C<eq> instead, see L<perlop>. -- --=item memcpy -- --memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>. -- --=item memmove -- --memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>. -- --=item memset -- --memset() is C-specific, use C<x> instead, see L<perlop>. -- --=item mkdir -- --This is identical to Perl's builtin C<mkdir()> function --for creating directories, see L<perlfunc/mkdir>. -- --=item mkfifo -- --This is similar to the C function C<mkfifo()> for creating --FIFO special files. -- -- if (mkfifo($path, $mode)) { .... -- --Returns C<undef> on failure. The C<$mode> is similar to the --mode of C<mkdir()>, see L<perlfunc/mkdir>, though for C<mkfifo> --you B<must> specify the C<$mode>. -- --=item mktime -- --Convert date/time info to a calendar time. -- --Synopsis: -- -- mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = -1) -- --The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero. --I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The --year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the --year 2001 is 101. Consult your system's C<mktime()> manpage for details --about these and the other arguments. -- --Calendar time for December 12, 1995, at 10:30 am. -- -- $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 ); -- print "Date = ", POSIX::ctime($time_t); -- --Returns C<undef> on failure. -- --=item modf -- --Return the integral and fractional parts of a floating-point number. -- -- ($fractional, $integral) = POSIX::modf( 3.14 ); -- --=item nice -- --This is similar to the C function C<nice()>, for changing --the scheduling preference of the current process. Positive --arguments mean more polite process, negative values more --needy process. Normal user processes can only be more polite. -- --Returns C<undef> on failure. -- --=item offsetof -- --offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead. -- --=item open -- --Open a file for reading for writing. This returns file descriptors, not --Perl filehandles. Use C<POSIX::close> to close the file. -- --Open a file read-only with mode 0666. -- -- $fd = POSIX::open( "foo" ); -- --Open a file for read and write. -- -- $fd = POSIX::open( "foo", &POSIX::O_RDWR ); -- --Open a file for write, with truncation. -- -- $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC ); -- --Create a new file with mode 0640. Set up the file for writing. -- -- $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 ); -- --Returns C<undef> on failure. -- --See also L<perlfunc/sysopen>. -- --=item opendir -- --Open a directory for reading. -- -- $dir = POSIX::opendir( "/var" ); -- @files = POSIX::readdir( $dir ); -- POSIX::closedir( $dir ); -- --Returns C<undef> on failure. -- --=item pathconf -- --Retrieves the value of a configurable limit on a file or directory. -- --The following will determine the maximum length of the longest allowable --pathname on the filesystem which holds C</var>. -- -- $path_max = POSIX::pathconf( "/var", &POSIX::_PC_PATH_MAX ); -- --Returns C<undef> on failure. -- --=item pause -- --This is similar to the C function C<pause()>, which suspends --the execution of the current process until a signal is received. -- --Returns C<undef> on failure. -- --=item perror -- --This is identical to the C function C<perror()>, which outputs to the --standard error stream the specified message followed by ": " and the --current error string. Use the C<warn()> function and the C<$!> --variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>. -- --=item pipe -- --Create an interprocess channel. This returns file descriptors like those --returned by C<POSIX::open>. -- -- my ($read, $write) = POSIX::pipe(); -- POSIX::write( $write, "hello", 5 ); -- POSIX::read( $read, $buf, 5 ); -- --See also L<perlfunc/pipe>. -- --=item pow -- --Computes C<$x> raised to the power C<$exponent>. -- -- $ret = POSIX::pow( $x, $exponent ); -- --You can also use the C<**> operator, see L<perlop>. -- --=item printf -- --Formats and prints the specified arguments to STDOUT. --See also L<perlfunc/printf>. -- --=item putc -- --putc() is C-specific, see L<perlfunc/print> instead. -- --=item putchar -- --putchar() is C-specific, see L<perlfunc/print> instead. -- --=item puts -- --puts() is C-specific, see L<perlfunc/print> instead. -- --=item qsort -- --qsort() is C-specific, see L<perlfunc/sort> instead. -- --=item raise -- --Sends the specified signal to the current process. --See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>. -- --=item rand -- --C<rand()> is non-portable, see L<perlfunc/rand> instead. -- --=item read -- --Read from a file. This uses file descriptors such as those obtained by --calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the --read then Perl will extend it to make room for the request. -- -- $fd = POSIX::open( "foo", &POSIX::O_RDONLY ); -- $bytes = POSIX::read( $fd, $buf, 3 ); -- --Returns C<undef> on failure. -- --See also L<perlfunc/sysread>. -- --=item readdir -- --This is identical to Perl's builtin C<readdir()> function --for reading directory entries, see L<perlfunc/readdir>. -- --=item realloc -- --realloc() is C-specific. Perl does memory management transparently. -- --=item remove -- --This is identical to Perl's builtin C<unlink()> function --for removing files, see L<perlfunc/unlink>. -- --=item rename -- --This is identical to Perl's builtin C<rename()> function --for renaming files, see L<perlfunc/rename>. -- --=item rewind -- --Seeks to the beginning of the file. -- --=item rewinddir -- --This is identical to Perl's builtin C<rewinddir()> function for --rewinding directory entry streams, see L<perlfunc/rewinddir>. -- --=item rmdir -- --This is identical to Perl's builtin C<rmdir()> function --for removing (empty) directories, see L<perlfunc/rmdir>. -- --=item scanf -- --scanf() is C-specific, use E<lt>E<gt> and regular expressions instead, --see L<perlre>. -- --=item setgid -- --Sets the real group identifier and the effective group identifier for --this process. Similar to assigning a value to the Perl's builtin --C<$)> variable, see L<perlvar/$EGID>, except that the latter --will change only the real user identifier, and that the setgid() --uses only a single numeric argument, as opposed to a space-separated --list of numbers. -- --=item setjmp -- --C<setjmp()> is C-specific: use C<eval {}> instead, --see L<perlfunc/eval>. -- --=item setlocale -- --Modifies and queries program's locale. The following examples assume -- -- use POSIX qw(setlocale LC_ALL LC_CTYPE); -- --has been issued. -- --The following will set the traditional UNIX system locale behavior --(the second argument C<"C">). -- -- $loc = setlocale( LC_ALL, "C" ); -- --The following will query the current LC_CTYPE category. (No second --argument means 'query'.) -- -- $loc = setlocale( LC_CTYPE ); -- --The following will set the LC_CTYPE behaviour according to the locale --environment variables (the second argument C<"">). --Please see your systems C<setlocale(3)> documentation for the locale --environment variables' meaning or consult L<perllocale>. -- -- $loc = setlocale( LC_CTYPE, "" ); -- --The following will set the LC_COLLATE behaviour to Argentinian --Spanish. B<NOTE>: The naming and availability of locales depends on --your operating system. Please consult L<perllocale> for how to find --out which locales are available in your system. -- -- $loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" ); -- --=item setpgid -- --This is similar to the C function C<setpgid()> for --setting the process group identifier of the current process. -- --Returns C<undef> on failure. -- --=item setsid -- --This is identical to the C function C<setsid()> for --setting the session identifier of the current process. -- --=item setuid -- --Sets the real user identifier and the effective user identifier for --this process. Similar to assigning a value to the Perl's builtin --C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter --will change only the real user identifier. -- --=item sigaction -- --Detailed signal management. This uses C<POSIX::SigAction> objects for --the C<action> and C<oldaction> arguments (the oldaction can also be --just a hash reference). Consult your system's C<sigaction> manpage --for details, see also C<POSIX::SigRt>. -- --Synopsis: -- -- sigaction(signal, action, oldaction = 0) -- --Returns C<undef> on failure. The C<signal> must be a number (like --SIGHUP), not a string (like "SIGHUP"), though Perl does try hard --to understand you. -- --If you use the SA_SIGINFO flag, the signal handler will in addition to --the first argument, the signal name, also receive a second argument, a --hash reference, inside which are the following keys with the following --semantics, as defined by POSIX/SUSv3: -- -- signo the signal number -- errno the error number -- code if this is zero or less, the signal was sent by -- a user process and the uid and pid make sense, -- otherwise the signal was sent by the kernel -- --The following are also defined by POSIX/SUSv3, but unfortunately --not very widely implemented: -- -- pid the process id generating the signal -- uid the uid of the process id generating the signal -- status exit value or signal for SIGCHLD -- band band event for SIGPOLL -- --A third argument is also passed to the handler, which contains a copy --of the raw binary contents of the siginfo structure: if a system has --some non-POSIX fields, this third argument is where to unpack() them --from. -- --Note that not all siginfo values make sense simultaneously (some are --valid only for certain signals, for example), and not all values make --sense from Perl perspective, you should to consult your system's --C<sigaction> and possibly also C<siginfo> documentation. -- --=item siglongjmp -- --siglongjmp() is C-specific: use L<perlfunc/die> instead. -- --=item sigpending -- --Examine signals that are blocked and pending. This uses C<POSIX::SigSet> --objects for the C<sigset> argument. Consult your system's C<sigpending> --manpage for details. -- --Synopsis: -- -- sigpending(sigset) -- --Returns C<undef> on failure. -- --=item sigprocmask -- --Change and/or examine calling process's signal mask. This uses --C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments. --Consult your system's C<sigprocmask> manpage for details. -- --Synopsis: -- -- sigprocmask(how, sigset, oldsigset = 0) -- --Returns C<undef> on failure. -- --=item sigsetjmp -- --C<sigsetjmp()> is C-specific: use C<eval {}> instead, --see L<perlfunc/eval>. -- --=item sigsuspend -- --Install a signal mask and suspend process until signal arrives. This uses --C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your --system's C<sigsuspend> manpage for details. -- --Synopsis: -- -- sigsuspend(signal_mask) -- --Returns C<undef> on failure. -- --=item sin -- --This is identical to Perl's builtin C<sin()> function --for returning the sine of the numerical argument, --see L<perlfunc/sin>. See also L<Math::Trig>. -- --=item sinh -- --This is identical to the C function C<sinh()> --for returning the hyperbolic sine of the numerical argument. --See also L<Math::Trig>. -- --=item sleep -- --This is functionally identical to Perl's builtin C<sleep()> function --for suspending the execution of the current for process for certain --number of seconds, see L<perlfunc/sleep>. There is one significant --difference, however: C<POSIX::sleep()> returns the number of --B<unslept> seconds, while the C<CORE::sleep()> returns the --number of slept seconds. -- --=item sprintf -- --This is similar to Perl's builtin C<sprintf()> function --for returning a string that has the arguments formatted as requested, --see L<perlfunc/sprintf>. -- --=item sqrt -- --This is identical to Perl's builtin C<sqrt()> function. --for returning the square root of the numerical argument, --see L<perlfunc/sqrt>. -- --=item srand -- --Give a seed the pseudorandom number generator, see L<perlfunc/srand>. -- --=item sscanf -- --sscanf() is C-specific, use regular expressions instead, --see L<perlre>. -- --=item stat -- --This is identical to Perl's builtin C<stat()> function --for returning information about files and directories. -- --=item strcat -- --strcat() is C-specific, use C<.=> instead, see L<perlop>. -- --=item strchr -- --strchr() is C-specific, see L<perlfunc/index> instead. -- --=item strcmp -- --strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>. -- --=item strcoll -- --This is identical to the C function C<strcoll()> --for collating (comparing) strings transformed using --the C<strxfrm()> function. Not really needed since --Perl can do this transparently, see L<perllocale>. -- --=item strcpy -- --strcpy() is C-specific, use C<=> instead, see L<perlop>. -- --=item strcspn -- --strcspn() is C-specific, use regular expressions instead, --see L<perlre>. -- --=item strerror -- --Returns the error string for the specified errno. --Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>. -- --=item strftime -- --Convert date and time information to string. Returns the string. -- --Synopsis: -- -- strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1) -- --The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero. --I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The --year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the --year 2001 is 101. Consult your system's C<strftime()> manpage for details --about these and the other arguments. -- --If you want your code to be portable, your format (C<fmt>) argument --should use only the conversion specifiers defined by the ANSI C --standard (C89, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>. --But even then, the B<results> of some of the conversion specifiers are --non-portable. For example, the specifiers C<aAbBcpZ> change according --to the locale settings of the user, and both how to set locales (the --locale names) and what output to expect are non-standard. --The specifier C<c> changes according to the timezone settings of the --user and the timezone computation rules of the operating system. --The C<Z> specifier is notoriously unportable since the names of --timezones are non-standard. Sticking to the numeric specifiers is the --safest route. -- --The given arguments are made consistent as though by calling --C<mktime()> before calling your system's C<strftime()> function, --except that the C<isdst> value is not affected. -- --The string for Tuesday, December 12, 1995. -- -- $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 ); -- print "$str\n"; -- --=item strlen -- --strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>. -- --=item strncat -- --strncat() is C-specific, use C<.=> instead, see L<perlop>. -- --=item strncmp -- --strncmp() is C-specific, use C<eq> instead, see L<perlop>. -- --=item strncpy -- --strncpy() is C-specific, use C<=> instead, see L<perlop>. -- --=item strpbrk -- --strpbrk() is C-specific, use regular expressions instead, --see L<perlre>. -- --=item strrchr -- --strrchr() is C-specific, see L<perlfunc/rindex> instead. -- --=item strspn -- --strspn() is C-specific, use regular expressions instead, --see L<perlre>. -- --=item strstr -- --This is identical to Perl's builtin C<index()> function, --see L<perlfunc/index>. -- --=item strtod -- --String to double translation. Returns the parsed number and the number --of characters in the unparsed portion of the string. Truly --POSIX-compliant systems set $! ($ERRNO) to indicate a translation --error, so clear $! before calling strtod. However, non-POSIX systems --may not check for overflow, and therefore will never set $!. -- --strtod should respect any POSIX I<setlocale()> settings. -- --To parse a string $str as a floating point number use -- -- $! = 0; -- ($num, $n_unparsed) = POSIX::strtod($str); -- --The second returned item and $! can be used to check for valid input: -- -- if (($str eq '') || ($n_unparsed != 0) || $!) { -- die "Non-numeric input $str" . ($! ? ": $!\n" : "\n"); -- } -- --When called in a scalar context strtod returns the parsed number. -- --=item strtok -- --strtok() is C-specific, use regular expressions instead, see --L<perlre>, or L<perlfunc/split>. -- --=item strtol -- --String to (long) integer translation. Returns the parsed number and --the number of characters in the unparsed portion of the string. Truly --POSIX-compliant systems set $! ($ERRNO) to indicate a translation --error, so clear $! before calling strtol. However, non-POSIX systems --may not check for overflow, and therefore will never set $!. -- --strtol should respect any POSIX I<setlocale()> settings. -- --To parse a string $str as a number in some base $base use -- -- $! = 0; -- ($num, $n_unparsed) = POSIX::strtol($str, $base); -- --The base should be zero or between 2 and 36, inclusive. When the base --is zero or omitted strtol will use the string itself to determine the --base: a leading "0x" or "0X" means hexadecimal; a leading "0" means --octal; any other leading characters mean decimal. Thus, "1234" is --parsed as a decimal number, "01234" as an octal number, and "0x1234" --as a hexadecimal number. -- --The second returned item and $! can be used to check for valid input: -- -- if (($str eq '') || ($n_unparsed != 0) || !$!) { -- die "Non-numeric input $str" . $! ? ": $!\n" : "\n"; -- } -- --When called in a scalar context strtol returns the parsed number. -- --=item strtoul -- --String to unsigned (long) integer translation. strtoul() is identical --to strtol() except that strtoul() only parses unsigned integers. See --L</strtol> for details. -- --Note: Some vendors supply strtod() and strtol() but not strtoul(). --Other vendors that do supply strtoul() parse "-1" as a valid value. -- --=item strxfrm -- --String transformation. Returns the transformed string. -- -- $dst = POSIX::strxfrm( $src ); -- --Used in conjunction with the C<strcoll()> function, see L</strcoll>. -- --Not really needed since Perl can do this transparently, see --L<perllocale>. -- --=item sysconf -- --Retrieves values of system configurable variables. -- --The following will get the machine's clock speed. -- -- $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK ); -- --Returns C<undef> on failure. -- --=item system -- --This is identical to Perl's builtin C<system()> function, see --L<perlfunc/system>. -- --=item tan -- --This is identical to the C function C<tan()>, returning the --tangent of the numerical argument. See also L<Math::Trig>. -- --=item tanh -- --This is identical to the C function C<tanh()>, returning the --hyperbolic tangent of the numerical argument. See also L<Math::Trig>. -- --=item tcdrain -- --This is similar to the C function C<tcdrain()> for draining --the output queue of its argument stream. -- --Returns C<undef> on failure. -- --=item tcflow -- --This is similar to the C function C<tcflow()> for controlling --the flow of its argument stream. -- --Returns C<undef> on failure. -- --=item tcflush -- --This is similar to the C function C<tcflush()> for flushing --the I/O buffers of its argument stream. -- --Returns C<undef> on failure. -- --=item tcgetpgrp -- --This is identical to the C function C<tcgetpgrp()> for returning the --process group identifier of the foreground process group of the controlling --terminal. -- --=item tcsendbreak -- --This is similar to the C function C<tcsendbreak()> for sending --a break on its argument stream. -- --Returns C<undef> on failure. -- --=item tcsetpgrp -- --This is similar to the C function C<tcsetpgrp()> for setting the --process group identifier of the foreground process group of the controlling --terminal. -- --Returns C<undef> on failure. -- --=item time -- --This is identical to Perl's builtin C<time()> function --for returning the number of seconds since the epoch --(whatever it is for the system), see L<perlfunc/time>. -- --=item times -- --The times() function returns elapsed realtime since some point in the past --(such as system startup), user and system times for this process, and user --and system times used by child processes. All times are returned in clock --ticks. -- -- ($realtime, $user, $system, $cuser, $csystem) = POSIX::times(); -- --Note: Perl's builtin C<times()> function returns four values, measured in --seconds. -- --=item tmpfile -- --Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>. -- --=item tmpnam -- --Returns a name for a temporary file. -- -- $tmpfile = POSIX::tmpnam(); -- --For security reasons, which are probably detailed in your system's --documentation for the C library tmpnam() function, this interface --should not be used; instead see L<File::Temp>. -- --=item tolower -- --This is identical to the C function, except that it can apply to a single --character or to a whole string. Consider using the C<lc()> function, --see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish --strings. -- --=item toupper -- --This is identical to the C function, except that it can apply to a single --character or to a whole string. Consider using the C<uc()> function, --see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish --strings. -- --=item ttyname -- --This is identical to the C function C<ttyname()> for returning the --name of the current terminal. -- --=item tzname -- --Retrieves the time conversion information from the C<tzname> variable. -- -- POSIX::tzset(); -- ($std, $dst) = POSIX::tzname(); -- --=item tzset -- --This is identical to the C function C<tzset()> for setting --the current timezone based on the environment variable C<TZ>, --to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()> --functions. -- --=item umask -- --This is identical to Perl's builtin C<umask()> function --for setting (and querying) the file creation permission mask, --see L<perlfunc/umask>. -- --=item uname -- --Get name of current operating system. -- -- ($sysname, $nodename, $release, $version, $machine) = POSIX::uname(); -- --Note that the actual meanings of the various fields are not --that well standardized, do not expect any great portability. --The C<$sysname> might be the name of the operating system, --the C<$nodename> might be the name of the host, the C<$release> --might be the (major) release number of the operating system, --the C<$version> might be the (minor) release number of the --operating system, and the C<$machine> might be a hardware identifier. --Maybe. -- --=item ungetc -- --Use method C<IO::Handle::ungetc()> instead. -- --=item unlink -- --This is identical to Perl's builtin C<unlink()> function --for removing files, see L<perlfunc/unlink>. -- --=item utime -- --This is identical to Perl's builtin C<utime()> function --for changing the time stamps of files and directories, --see L<perlfunc/utime>. -- --=item vfprintf -- --vfprintf() is C-specific, see L<perlfunc/printf> instead. -- --=item vprintf -- --vprintf() is C-specific, see L<perlfunc/printf> instead. -- --=item vsprintf -- --vsprintf() is C-specific, see L<perlfunc/sprintf> instead. -- --=item wait -- --This is identical to Perl's builtin C<wait()> function, --see L<perlfunc/wait>. -- --=item waitpid -- --Wait for a child process to change state. This is identical to Perl's --builtin C<waitpid()> function, see L<perlfunc/waitpid>. -- -- $pid = POSIX::waitpid( -1, POSIX::WNOHANG ); -- print "status = ", ($? / 256), "\n"; -- --=item wcstombs -- --This is identical to the C function C<wcstombs()>. --Perl does not have any support for the wide and multibyte --characters of the C standards, so this might be a rather --useless function. -- --=item wctomb -- --This is identical to the C function C<wctomb()>. --Perl does not have any support for the wide and multibyte --characters of the C standards, so this might be a rather --useless function. -- --=item write -- --Write to a file. This uses file descriptors such as those obtained by --calling C<POSIX::open>. -- -- $fd = POSIX::open( "foo", &POSIX::O_WRONLY ); -- $buf = "hello"; -- $bytes = POSIX::write( $fd, $buf, 5 ); -- --Returns C<undef> on failure. -- --See also L<perlfunc/syswrite>. -- --=back -- --=head1 CLASSES -- --=head2 POSIX::SigAction -- --=over 8 -- --=item new -- --Creates a new C<POSIX::SigAction> object which corresponds to the C --C<struct sigaction>. This object will be destroyed automatically when --it is no longer needed. The first parameter is the handler, a sub --reference. The second parameter is a C<POSIX::SigSet> object, it --defaults to the empty set. The third parameter contains the --C<sa_flags>, it defaults to 0. -- -- $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT); -- $sigaction = POSIX::SigAction->new( \&handler, $sigset, &POSIX::SA_NOCLDSTOP ); -- --This C<POSIX::SigAction> object is intended for use with the C<POSIX::sigaction()> --function. -- --=back -- --=over 8 -- --=item handler -- --=item mask -- --=item flags -- --accessor functions to get/set the values of a SigAction object. -- -- $sigset = $sigaction->mask; -- $sigaction->flags(&POSIX::SA_RESTART); -- --=item safe -- --accessor function for the "safe signals" flag of a SigAction object; see --L<perlipc> for general information on safe (a.k.a. "deferred") signals. If --you wish to handle a signal safely, use this accessor to set the "safe" flag --in the C<POSIX::SigAction> object: -- -- $sigaction->safe(1); -- --You may also examine the "safe" flag on the output action object which is --filled in when given as the third parameter to C<POSIX::sigaction()>: -- -- sigaction(SIGINT, $new_action, $old_action); -- if ($old_action->safe) { -- # previous SIGINT handler used safe signals -- } -- --=back -- --=head2 POSIX::SigRt -- --=over 8 -- --=item %SIGRT -- --A hash of the POSIX realtime signal handlers. It is an extension of --the standard %SIG, the $POSIX::SIGRT{SIGRTMIN} is roughly equivalent --to $SIG{SIGRTMIN}, but the right POSIX moves (see below) are made with --the POSIX::SigSet and POSIX::sigaction instead of accessing the %SIG. -- --You can set the %POSIX::SIGRT elements to set the POSIX realtime --signal handlers, use C<delete> and C<exists> on the elements, and use --C<scalar> on the C<%POSIX::SIGRT> to find out how many POSIX realtime --signals there are available (SIGRTMAX - SIGRTMIN + 1, the SIGRTMAX is --a valid POSIX realtime signal). -- --Setting the %SIGRT elements is equivalent to calling this: -- -- sub new { -- my ($rtsig, $handler, $flags) = @_; -- my $sigset = POSIX::SigSet($rtsig); -- my $sigact = POSIX::SigAction->new($handler, $sigset, $flags); -- sigaction($rtsig, $sigact); -- } -- --The flags default to zero, if you want something different you can --either use C<local> on $POSIX::SigRt::SIGACTION_FLAGS, or you can --derive from POSIX::SigRt and define your own C<new()> (the tied hash --STORE method of the %SIGRT calls C<new($rtsig, $handler, $SIGACTION_FLAGS)>, --where the $rtsig ranges from zero to SIGRTMAX - SIGRTMIN + 1). -- --Just as with any signal, you can use sigaction($rtsig, undef, $oa) to --retrieve the installed signal handler (or, rather, the signal action). -- --B<NOTE:> whether POSIX realtime signals really work in your system, or --whether Perl has been compiled so that it works with them, is outside --of this discussion. -- --=item SIGRTMIN -- --Return the minimum POSIX realtime signal number available, or C<undef> --if no POSIX realtime signals are available. -- --=item SIGRTMAX -- --Return the maximum POSIX realtime signal number available, or C<undef> --if no POSIX realtime signals are available. -- --=back -- --=head2 POSIX::SigSet -- --=over 8 -- --=item new -- --Create a new SigSet object. This object will be destroyed automatically --when it is no longer needed. Arguments may be supplied to initialize the --set. -- --Create an empty set. -- -- $sigset = POSIX::SigSet->new; -- --Create a set with SIGUSR1. -- -- $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 ); -- --=item addset -- --Add a signal to a SigSet object. -- -- $sigset->addset( &POSIX::SIGUSR2 ); -- --Returns C<undef> on failure. -- --=item delset -- --Remove a signal from the SigSet object. -- -- $sigset->delset( &POSIX::SIGUSR2 ); -- --Returns C<undef> on failure. -- --=item emptyset -- --Initialize the SigSet object to be empty. -- -- $sigset->emptyset(); -- --Returns C<undef> on failure. -- --=item fillset -- --Initialize the SigSet object to include all signals. -- -- $sigset->fillset(); -- --Returns C<undef> on failure. -- --=item ismember -- --Tests the SigSet object to see if it contains a specific signal. -- -- if( $sigset->ismember( &POSIX::SIGUSR1 ) ){ -- print "contains SIGUSR1\n"; -- } -- --=back -- --=head2 POSIX::Termios -- --=over 8 -- --=item new -- --Create a new Termios object. This object will be destroyed automatically --when it is no longer needed. A Termios object corresponds to the termios --C struct. new() mallocs a new one, getattr() fills it from a file descriptor, --and setattr() sets a file descriptor's parameters to match Termios' contents. -- -- $termios = POSIX::Termios->new; -- --=item getattr -- --Get terminal control attributes. -- --Obtain the attributes for stdin. -- -- $termios->getattr( 0 ) # Recommended for clarity. -- $termios->getattr() -- --Obtain the attributes for stdout. -- -- $termios->getattr( 1 ) -- --Returns C<undef> on failure. -- --=item getcc -- --Retrieve a value from the c_cc field of a termios object. The c_cc field is --an array so an index must be specified. -- -- $c_cc[1] = $termios->getcc(1); -- --=item getcflag -- --Retrieve the c_cflag field of a termios object. -- -- $c_cflag = $termios->getcflag; -- --=item getiflag -- --Retrieve the c_iflag field of a termios object. -- -- $c_iflag = $termios->getiflag; -- --=item getispeed -- --Retrieve the input baud rate. -- -- $ispeed = $termios->getispeed; -- --=item getlflag -- --Retrieve the c_lflag field of a termios object. -- -- $c_lflag = $termios->getlflag; -- --=item getoflag -- --Retrieve the c_oflag field of a termios object. -- -- $c_oflag = $termios->getoflag; -- --=item getospeed -- --Retrieve the output baud rate. -- -- $ospeed = $termios->getospeed; -- --=item setattr -- --Set terminal control attributes. -- --Set attributes immediately for stdout. -- -- $termios->setattr( 1, &POSIX::TCSANOW ); -- --Returns C<undef> on failure. -- --=item setcc -- --Set a value in the c_cc field of a termios object. The c_cc field is an --array so an index must be specified. -- -- $termios->setcc( &POSIX::VEOF, 1 ); -- --=item setcflag -- --Set the c_cflag field of a termios object. -- -- $termios->setcflag( $c_cflag | &POSIX::CLOCAL ); -- --=item setiflag -- --Set the c_iflag field of a termios object. -- -- $termios->setiflag( $c_iflag | &POSIX::BRKINT ); -- --=item setispeed -- --Set the input baud rate. -- -- $termios->setispeed( &POSIX::B9600 ); -- --Returns C<undef> on failure. -- --=item setlflag -- --Set the c_lflag field of a termios object. -- -- $termios->setlflag( $c_lflag | &POSIX::ECHO ); -- --=item setoflag -- --Set the c_oflag field of a termios object. -- -- $termios->setoflag( $c_oflag | &POSIX::OPOST ); -- --=item setospeed -- --Set the output baud rate. -- -- $termios->setospeed( &POSIX::B9600 ); -- --Returns C<undef> on failure. -- --=item Baud rate values -- --B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110 -- --=item Terminal interface values -- --TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF -- --=item c_cc field values -- --VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS -- --=item c_cflag field values -- --CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD -- --=item c_iflag field values -- --BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK -- --=item c_lflag field values -- --ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP -- --=item c_oflag field values -- --OPOST -- --=back -- --=head1 PATHNAME CONSTANTS -- --=over 8 -- --=item Constants -- --_PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE -- --=back -- --=head1 POSIX CONSTANTS -- --=over 8 -- --=item Constants -- --_POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION -- --=back -- --=head1 SYSTEM CONFIGURATION -- --=over 8 -- --=item Constants -- --_SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION -- --=back -- --=head1 ERRNO -- --=over 8 -- --=item Constants -- --E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF --EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ --EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR --EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG --ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC --ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR --ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE --EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS --ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS --ETXTBSY EUSERS EWOULDBLOCK EXDEV -- --=back -- --=head1 FCNTL -- --=over 8 -- --=item Constants -- --FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY -- --=back -- --=head1 FLOAT -- --=over 8 -- --=item Constants -- --DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP -- --=back -- --=head1 LIMITS -- --=over 8 -- --=item Constants -- --ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX -- --=back -- --=head1 LOCALE -- --=over 8 -- --=item Constants -- --LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME -- --=back -- --=head1 MATH -- --=over 8 -- --=item Constants -- --HUGE_VAL -- --=back -- --=head1 SIGNAL -- --=over 8 -- --=item Constants -- --SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART --SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT --SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU --SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK --SIG_UNBLOCK -- --=back -- --=head1 STAT -- --=over 8 -- --=item Constants -- --S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR -- --=item Macros -- --S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG -- --=back -- --=head1 STDLIB -- --=over 8 -- --=item Constants -- --EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX -- --=back -- --=head1 STDIO -- --=over 8 -- --=item Constants -- --BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX -- --=back -- --=head1 TIME -- --=over 8 -- --=item Constants -- --CLK_TCK CLOCKS_PER_SEC -- --=back -- --=head1 UNISTD -- --=over 8 -- --=item Constants -- --R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK -- --=back -- --=head1 WAIT -- --=over 8 -- --=item Constants -- --WNOHANG WUNTRACED -- --=over 16 -- --=item WNOHANG -- --Do not suspend the calling process until a child process --changes state but instead return immediately. -- --=item WUNTRACED -- --Catch stopped child processes. -- --=back -- --=item Macros -- --WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG -- --=over 16 -- --=item WIFEXITED -- --WIFEXITED($?) returns true if the child process exited normally --(C<exit()> or by falling off the end of C<main()>) -- --=item WEXITSTATUS -- --WEXITSTATUS($?) returns the normal exit status of the child process --(only meaningful if WIFEXITED($?) is true) -- --=item WIFSIGNALED -- --WIFSIGNALED($?) returns true if the child process terminated because --of a signal -- --=item WTERMSIG -- --WTERMSIG($?) returns the signal the child process terminated for --(only meaningful if WIFSIGNALED($?) is true) -- --=item WIFSTOPPED -- --WIFSTOPPED($?) returns true if the child process is currently stopped --(can happen only if you specified the WUNTRACED flag to waitpid()) -- --=item WSTOPSIG -- --WSTOPSIG($?) returns the signal the child process was stopped for --(only meaningful if WIFSTOPPED($?) is true) -- --=back -- --=back -- -diff --git a/ext/POSIX/lib/POSIX.pm b/ext/POSIX/lib/POSIX.pm -new file mode 100644 -index 0000000..ffbd9de ---- /dev/null -+++ b/ext/POSIX/lib/POSIX.pm -@@ -0,0 +1,1042 @@ -+package POSIX; -+use strict; -+use warnings; -+ -+our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = (); -+ -+our $VERSION = "1.19"; -+ -+use AutoLoader; -+ -+use XSLoader (); -+ -+use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD -+ F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND -+ O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC -+ O_WRONLY SEEK_CUR SEEK_END SEEK_SET -+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG -+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID -+ S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR); -+ -+# Grandfather old foo_h form to new :foo_h form -+my $loaded; -+ -+sub import { -+ load_imports() unless $loaded++; -+ my $this = shift; -+ my @list = map { m/^\w+_h$/ ? ":$_" : $_ } @_; -+ local $Exporter::ExportLevel = 1; -+ Exporter::import($this,@list); -+} -+ -+sub croak { require Carp; goto &Carp::croak } -+# declare usage to assist AutoLoad -+sub usage; -+ -+XSLoader::load 'POSIX', $VERSION; -+ -+sub AUTOLOAD { -+ no strict; -+ no warnings 'uninitialized'; -+ if ($AUTOLOAD =~ /::(_?[a-z])/) { -+ # require AutoLoader; -+ $AutoLoader::AUTOLOAD = $AUTOLOAD; -+ goto &AutoLoader::AUTOLOAD -+ } -+ local $! = 0; -+ my $constname = $AUTOLOAD; -+ $constname =~ s/.*:://; -+ my ($error, $val) = constant($constname); -+ croak $error if $error; -+ *$AUTOLOAD = sub { $val }; -+ -+ goto &$AUTOLOAD; -+} -+ -+package POSIX::SigAction; -+ -+use AutoLoader 'AUTOLOAD'; -+ -+package POSIX::SigRt; -+ -+use AutoLoader 'AUTOLOAD'; -+ -+use Tie::Hash; -+ -+use vars qw($SIGACTION_FLAGS $_SIGRTMIN $_SIGRTMAX $_sigrtn @ISA); -+@POSIX::SigRt::ISA = qw(Tie::StdHash); -+ -+$SIGACTION_FLAGS = 0; -+ -+tie %POSIX::SIGRT, 'POSIX::SigRt'; -+ -+sub DESTROY {}; -+ -+package POSIX; -+ -+1; -+__END__ -+ -+sub usage { -+ my ($mess) = @_; -+ croak "Usage: POSIX::$mess"; -+} -+ -+sub redef { -+ my ($mess) = @_; -+ croak "Use method $mess instead"; -+} -+ -+sub unimpl { -+ my ($mess) = @_; -+ $mess =~ s/xxx//; -+ croak "Unimplemented: POSIX::$mess"; -+} -+ -+sub assert { -+ usage "assert(expr)" if @_ != 1; -+ if (!$_[0]) { -+ croak "Assertion failed"; -+ } -+} -+ -+sub tolower { -+ usage "tolower(string)" if @_ != 1; -+ lc($_[0]); -+} -+ -+sub toupper { -+ usage "toupper(string)" if @_ != 1; -+ uc($_[0]); -+} -+ -+sub closedir { -+ usage "closedir(dirhandle)" if @_ != 1; -+ CORE::closedir($_[0]); -+} -+ -+sub opendir { -+ usage "opendir(directory)" if @_ != 1; -+ my $dirhandle; -+ CORE::opendir($dirhandle, $_[0]) -+ ? $dirhandle -+ : undef; -+} -+ -+sub readdir { -+ usage "readdir(dirhandle)" if @_ != 1; -+ CORE::readdir($_[0]); -+} -+ -+sub rewinddir { -+ usage "rewinddir(dirhandle)" if @_ != 1; -+ CORE::rewinddir($_[0]); -+} -+ -+sub errno { -+ usage "errno()" if @_ != 0; -+ $! + 0; -+} -+ -+sub creat { -+ usage "creat(filename, mode)" if @_ != 2; -+ &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1]); -+} -+ -+sub fcntl { -+ usage "fcntl(filehandle, cmd, arg)" if @_ != 3; -+ CORE::fcntl($_[0], $_[1], $_[2]); -+} -+ -+sub getgrgid { -+ usage "getgrgid(gid)" if @_ != 1; -+ CORE::getgrgid($_[0]); -+} -+ -+sub getgrnam { -+ usage "getgrnam(name)" if @_ != 1; -+ CORE::getgrnam($_[0]); -+} -+ -+sub atan2 { -+ usage "atan2(x,y)" if @_ != 2; -+ CORE::atan2($_[0], $_[1]); -+} -+ -+sub cos { -+ usage "cos(x)" if @_ != 1; -+ CORE::cos($_[0]); -+} -+ -+sub exp { -+ usage "exp(x)" if @_ != 1; -+ CORE::exp($_[0]); -+} -+ -+sub fabs { -+ usage "fabs(x)" if @_ != 1; -+ CORE::abs($_[0]); -+} -+ -+sub log { -+ usage "log(x)" if @_ != 1; -+ CORE::log($_[0]); -+} -+ -+sub pow { -+ usage "pow(x,exponent)" if @_ != 2; -+ $_[0] ** $_[1]; -+} -+ -+sub sin { -+ usage "sin(x)" if @_ != 1; -+ CORE::sin($_[0]); -+} -+ -+sub sqrt { -+ usage "sqrt(x)" if @_ != 1; -+ CORE::sqrt($_[0]); -+} -+ -+sub getpwnam { -+ usage "getpwnam(name)" if @_ != 1; -+ CORE::getpwnam($_[0]); -+} -+ -+sub getpwuid { -+ usage "getpwuid(uid)" if @_ != 1; -+ CORE::getpwuid($_[0]); -+} -+ -+sub longjmp { -+ unimpl "longjmp() is C-specific: use die instead"; -+} -+ -+sub setjmp { -+ unimpl "setjmp() is C-specific: use eval {} instead"; -+} -+ -+sub siglongjmp { -+ unimpl "siglongjmp() is C-specific: use die instead"; -+} -+ -+sub sigsetjmp { -+ unimpl "sigsetjmp() is C-specific: use eval {} instead"; -+} -+ -+sub kill { -+ usage "kill(pid, sig)" if @_ != 2; -+ CORE::kill $_[1], $_[0]; -+} -+ -+sub raise { -+ usage "raise(sig)" if @_ != 1; -+ CORE::kill $_[0], $$; # Is this good enough? -+} -+ -+sub offsetof { -+ unimpl "offsetof() is C-specific, stopped"; -+} -+ -+sub clearerr { -+ redef "IO::Handle::clearerr()"; -+} -+ -+sub fclose { -+ redef "IO::Handle::close()"; -+} -+ -+sub fdopen { -+ redef "IO::Handle::new_from_fd()"; -+} -+ -+sub feof { -+ redef "IO::Handle::eof()"; -+} -+ -+sub fgetc { -+ redef "IO::Handle::getc()"; -+} -+ -+sub fgets { -+ redef "IO::Handle::gets()"; -+} -+ -+sub fileno { -+ redef "IO::Handle::fileno()"; -+} -+ -+sub fopen { -+ redef "IO::File::open()"; -+} -+ -+sub fprintf { -+ unimpl "fprintf() is C-specific--use printf instead"; -+} -+ -+sub fputc { -+ unimpl "fputc() is C-specific--use print instead"; -+} -+ -+sub fputs { -+ unimpl "fputs() is C-specific--use print instead"; -+} -+ -+sub fread { -+ unimpl "fread() is C-specific--use read instead"; -+} -+ -+sub freopen { -+ unimpl "freopen() is C-specific--use open instead"; -+} -+ -+sub fscanf { -+ unimpl "fscanf() is C-specific--use <> and regular expressions instead"; -+} -+ -+sub fseek { -+ redef "IO::Seekable::seek()"; -+} -+ -+sub fsync { -+ redef "IO::Handle::sync()"; -+} -+ -+sub ferror { -+ redef "IO::Handle::error()"; -+} -+ -+sub fflush { -+ redef "IO::Handle::flush()"; -+} -+ -+sub fgetpos { -+ redef "IO::Seekable::getpos()"; -+} -+ -+sub fsetpos { -+ redef "IO::Seekable::setpos()"; -+} -+ -+sub ftell { -+ redef "IO::Seekable::tell()"; -+} -+ -+sub fwrite { -+ unimpl "fwrite() is C-specific--use print instead"; -+} -+ -+sub getc { -+ usage "getc(handle)" if @_ != 1; -+ CORE::getc($_[0]); -+} -+ -+sub getchar { -+ usage "getchar()" if @_ != 0; -+ CORE::getc(STDIN); -+} -+ -+sub gets { -+ usage "gets()" if @_ != 0; -+ scalar <STDIN>; -+} -+ -+sub perror { -+ print STDERR "@_: " if @_; -+ print STDERR $!,"\n"; -+} -+ -+sub printf { -+ usage "printf(pattern, args...)" if @_ < 1; -+ CORE::printf STDOUT @_; -+} -+ -+sub putc { -+ unimpl "putc() is C-specific--use print instead"; -+} -+ -+sub putchar { -+ unimpl "putchar() is C-specific--use print instead"; -+} -+ -+sub puts { -+ unimpl "puts() is C-specific--use print instead"; -+} -+ -+sub remove { -+ usage "remove(filename)" if @_ != 1; -+ (-d $_[0]) ? CORE::rmdir($_[0]) : CORE::unlink($_[0]); -+} -+ -+sub rename { -+ usage "rename(oldfilename, newfilename)" if @_ != 2; -+ CORE::rename($_[0], $_[1]); -+} -+ -+sub rewind { -+ usage "rewind(filehandle)" if @_ != 1; -+ CORE::seek($_[0],0,0); -+} -+ -+sub scanf { -+ unimpl "scanf() is C-specific--use <> and regular expressions instead"; -+} -+ -+sub sprintf { -+ usage "sprintf(pattern,args)" if @_ == 0; -+ CORE::sprintf(shift,@_); -+} -+ -+sub sscanf { -+ unimpl "sscanf() is C-specific--use regular expressions instead"; -+} -+ -+sub tmpfile { -+ redef "IO::File::new_tmpfile()"; -+} -+ -+sub ungetc { -+ redef "IO::Handle::ungetc()"; -+} -+ -+sub vfprintf { -+ unimpl "vfprintf() is C-specific"; -+} -+ -+sub vprintf { -+ unimpl "vprintf() is C-specific"; -+} -+ -+sub vsprintf { -+ unimpl "vsprintf() is C-specific"; -+} -+ -+sub abs { -+ usage "abs(x)" if @_ != 1; -+ CORE::abs($_[0]); -+} -+ -+sub atexit { -+ unimpl "atexit() is C-specific: use END {} instead"; -+} -+ -+sub atof { -+ unimpl "atof() is C-specific, stopped"; -+} -+ -+sub atoi { -+ unimpl "atoi() is C-specific, stopped"; -+} -+ -+sub atol { -+ unimpl "atol() is C-specific, stopped"; -+} -+ -+sub bsearch { -+ unimpl "bsearch() not supplied"; -+} -+ -+sub calloc { -+ unimpl "calloc() is C-specific, stopped"; -+} -+ -+sub div { -+ unimpl "div() is C-specific, use /, % and int instead"; -+} -+ -+sub exit { -+ usage "exit(status)" if @_ != 1; -+ CORE::exit($_[0]); -+} -+ -+sub free { -+ unimpl "free() is C-specific, stopped"; -+} -+ -+sub getenv { -+ usage "getenv(name)" if @_ != 1; -+ $ENV{$_[0]}; -+} -+ -+sub labs { -+ unimpl "labs() is C-specific, use abs instead"; -+} -+ -+sub ldiv { -+ unimpl "ldiv() is C-specific, use /, % and int instead"; -+} -+ -+sub malloc { -+ unimpl "malloc() is C-specific, stopped"; -+} -+ -+sub qsort { -+ unimpl "qsort() is C-specific, use sort instead"; -+} -+ -+sub rand { -+ unimpl "rand() is non-portable, use Perl's rand instead"; -+} -+ -+sub realloc { -+ unimpl "realloc() is C-specific, stopped"; -+} -+ -+sub srand { -+ unimpl "srand()"; -+} -+ -+sub system { -+ usage "system(command)" if @_ != 1; -+ CORE::system($_[0]); -+} -+ -+sub memchr { -+ unimpl "memchr() is C-specific, use index() instead"; -+} -+ -+sub memcmp { -+ unimpl "memcmp() is C-specific, use eq instead"; -+} -+ -+sub memcpy { -+ unimpl "memcpy() is C-specific, use = instead"; -+} -+ -+sub memmove { -+ unimpl "memmove() is C-specific, use = instead"; -+} -+ -+sub memset { -+ unimpl "memset() is C-specific, use x instead"; -+} -+ -+sub strcat { -+ unimpl "strcat() is C-specific, use .= instead"; -+} -+ -+sub strchr { -+ unimpl "strchr() is C-specific, use index() instead"; -+} -+ -+sub strcmp { -+ unimpl "strcmp() is C-specific, use eq instead"; -+} -+ -+sub strcpy { -+ unimpl "strcpy() is C-specific, use = instead"; -+} -+ -+sub strcspn { -+ unimpl "strcspn() is C-specific, use regular expressions instead"; -+} -+ -+sub strerror { -+ usage "strerror(errno)" if @_ != 1; -+ local $! = $_[0]; -+ $! . ""; -+} -+ -+sub strlen { -+ unimpl "strlen() is C-specific, use length instead"; -+} -+ -+sub strncat { -+ unimpl "strncat() is C-specific, use .= instead"; -+} -+ -+sub strncmp { -+ unimpl "strncmp() is C-specific, use eq instead"; -+} -+ -+sub strncpy { -+ unimpl "strncpy() is C-specific, use = instead"; -+} -+ -+sub strpbrk { -+ unimpl "strpbrk() is C-specific, stopped"; -+} -+ -+sub strrchr { -+ unimpl "strrchr() is C-specific, use rindex() instead"; -+} -+ -+sub strspn { -+ unimpl "strspn() is C-specific, stopped"; -+} -+ -+sub strstr { -+ usage "strstr(big, little)" if @_ != 2; -+ CORE::index($_[0], $_[1]); -+} -+ -+sub strtok { -+ unimpl "strtok() is C-specific, stopped"; -+} -+ -+sub chmod { -+ usage "chmod(mode, filename)" if @_ != 2; -+ CORE::chmod($_[0], $_[1]); -+} -+ -+sub fstat { -+ usage "fstat(fd)" if @_ != 1; -+ local *TMP; -+ CORE::open(TMP, "<&$_[0]"); # Gross. -+ my @l = CORE::stat(TMP); -+ CORE::close(TMP); -+ @l; -+} -+ -+sub mkdir { -+ usage "mkdir(directoryname, mode)" if @_ != 2; -+ CORE::mkdir($_[0], $_[1]); -+} -+ -+sub stat { -+ usage "stat(filename)" if @_ != 1; -+ CORE::stat($_[0]); -+} -+ -+sub umask { -+ usage "umask(mask)" if @_ != 1; -+ CORE::umask($_[0]); -+} -+ -+sub wait { -+ usage "wait()" if @_ != 0; -+ CORE::wait(); -+} -+ -+sub waitpid { -+ usage "waitpid(pid, options)" if @_ != 2; -+ CORE::waitpid($_[0], $_[1]); -+} -+ -+sub gmtime { -+ usage "gmtime(time)" if @_ != 1; -+ CORE::gmtime($_[0]); -+} -+ -+sub localtime { -+ usage "localtime(time)" if @_ != 1; -+ CORE::localtime($_[0]); -+} -+ -+sub time { -+ usage "time()" if @_ != 0; -+ CORE::time; -+} -+ -+sub alarm { -+ usage "alarm(seconds)" if @_ != 1; -+ CORE::alarm($_[0]); -+} -+ -+sub chdir { -+ usage "chdir(directory)" if @_ != 1; -+ CORE::chdir($_[0]); -+} -+ -+sub chown { -+ usage "chown(uid, gid, filename)" if @_ != 3; -+ CORE::chown($_[0], $_[1], $_[2]); -+} -+ -+sub execl { -+ unimpl "execl() is C-specific, stopped"; -+} -+ -+sub execle { -+ unimpl "execle() is C-specific, stopped"; -+} -+ -+sub execlp { -+ unimpl "execlp() is C-specific, stopped"; -+} -+ -+sub execv { -+ unimpl "execv() is C-specific, stopped"; -+} -+ -+sub execve { -+ unimpl "execve() is C-specific, stopped"; -+} -+ -+sub execvp { -+ unimpl "execvp() is C-specific, stopped"; -+} -+ -+sub fork { -+ usage "fork()" if @_ != 0; -+ CORE::fork; -+} -+ -+sub getegid { -+ usage "getegid()" if @_ != 0; -+ $) + 0; -+} -+ -+sub geteuid { -+ usage "geteuid()" if @_ != 0; -+ $> + 0; -+} -+ -+sub getgid { -+ usage "getgid()" if @_ != 0; -+ $( + 0; -+} -+ -+sub getgroups { -+ usage "getgroups()" if @_ != 0; -+ my %seen; -+ grep(!$seen{$_}++, split(' ', $) )); -+} -+ -+sub getlogin { -+ usage "getlogin()" if @_ != 0; -+ CORE::getlogin(); -+} -+ -+sub getpgrp { -+ usage "getpgrp()" if @_ != 0; -+ CORE::getpgrp; -+} -+ -+sub getpid { -+ usage "getpid()" if @_ != 0; -+ $$; -+} -+ -+sub getppid { -+ usage "getppid()" if @_ != 0; -+ CORE::getppid; -+} -+ -+sub getuid { -+ usage "getuid()" if @_ != 0; -+ $<; -+} -+ -+sub isatty { -+ usage "isatty(filehandle)" if @_ != 1; -+ -t $_[0]; -+} -+ -+sub link { -+ usage "link(oldfilename, newfilename)" if @_ != 2; -+ CORE::link($_[0], $_[1]); -+} -+ -+sub rmdir { -+ usage "rmdir(directoryname)" if @_ != 1; -+ CORE::rmdir($_[0]); -+} -+ -+sub setbuf { -+ redef "IO::Handle::setbuf()"; -+} -+ -+sub setvbuf { -+ redef "IO::Handle::setvbuf()"; -+} -+ -+sub sleep { -+ usage "sleep(seconds)" if @_ != 1; -+ $_[0] - CORE::sleep($_[0]); -+} -+ -+sub unlink { -+ usage "unlink(filename)" if @_ != 1; -+ CORE::unlink($_[0]); -+} -+ -+sub utime { -+ usage "utime(filename, atime, mtime)" if @_ != 3; -+ CORE::utime($_[1], $_[2], $_[0]); -+} -+ -+sub load_imports { -+%EXPORT_TAGS = ( -+ -+ assert_h => [qw(assert NDEBUG)], -+ -+ ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower -+ isprint ispunct isspace isupper isxdigit tolower toupper)], -+ -+ dirent_h => [], -+ -+ errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT -+ EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED -+ ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT -+ EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS -+ EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK -+ EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH -+ ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM -+ ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR -+ ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM -+ EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE -+ ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT -+ ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY -+ EUSERS EWOULDBLOCK EXDEV errno)], -+ -+ fcntl_h => [qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK -+ F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK -+ O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK -+ O_RDONLY O_RDWR O_TRUNC O_WRONLY -+ creat -+ SEEK_CUR SEEK_END SEEK_SET -+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU -+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID -+ S_IWGRP S_IWOTH S_IWUSR)], -+ -+ float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG -+ DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP -+ DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP -+ FLT_DIG FLT_EPSILON FLT_MANT_DIG -+ FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP -+ FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP -+ FLT_RADIX FLT_ROUNDS -+ LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG -+ LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP -+ LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)], -+ -+ grp_h => [], -+ -+ limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX -+ INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON -+ MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX -+ PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN -+ SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX -+ ULONG_MAX USHRT_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX -+ _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT -+ _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX -+ _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX -+ _POSIX_STREAM_MAX _POSIX_TZNAME_MAX)], -+ -+ locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES -+ LC_MONETARY LC_NUMERIC LC_TIME NULL -+ localeconv setlocale)], -+ -+ math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod -+ frexp ldexp log10 modf pow sinh tan tanh)], -+ -+ pwd_h => [], -+ -+ setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)], -+ -+ signal_h => [qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK -+ SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM -+ SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL -+ SIGPIPE %SIGRT SIGRTMIN SIGRTMAX SIGQUIT SIGSEGV SIGSTOP -+ SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 -+ SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK -+ raise sigaction signal sigpending sigprocmask sigsuspend)], -+ -+ stdarg_h => [], -+ -+ stddef_h => [qw(NULL offsetof)], -+ -+ stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid -+ L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET -+ STREAM_MAX TMP_MAX stderr stdin stdout -+ clearerr fclose fdopen feof ferror fflush fgetc fgetpos -+ fgets fopen fprintf fputc fputs fread freopen -+ fscanf fseek fsetpos ftell fwrite getchar gets -+ perror putc putchar puts remove rewind -+ scanf setbuf setvbuf sscanf tmpfile tmpnam -+ ungetc vfprintf vprintf vsprintf)], -+ -+ stdlib_h => [qw(EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX NULL RAND_MAX -+ abort atexit atof atoi atol bsearch calloc div -+ free getenv labs ldiv malloc mblen mbstowcs mbtowc -+ qsort realloc strtod strtol strtoul wcstombs wctomb)], -+ -+ string_h => [qw(NULL memchr memcmp memcpy memmove memset strcat -+ strchr strcmp strcoll strcpy strcspn strerror strlen -+ strncat strncmp strncpy strpbrk strrchr strspn strstr -+ strtok strxfrm)], -+ -+ sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU -+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG -+ S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR -+ fstat mkfifo)], -+ -+ sys_times_h => [], -+ -+ sys_types_h => [], -+ -+ sys_utsname_h => [qw(uname)], -+ -+ sys_wait_h => [qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED -+ WNOHANG WSTOPSIG WTERMSIG WUNTRACED)], -+ -+ termios_h => [qw( B0 B110 B1200 B134 B150 B1800 B19200 B200 B2400 -+ B300 B38400 B4800 B50 B600 B75 B9600 BRKINT CLOCAL -+ CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB ECHO ECHOE ECHOK -+ ECHONL HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR -+ INLCR INPCK ISIG ISTRIP IXOFF IXON NCCS NOFLSH OPOST -+ PARENB PARMRK PARODD TCIFLUSH TCIOFF TCIOFLUSH TCION -+ TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW -+ TOSTOP VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART -+ VSTOP VSUSP VTIME -+ cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcdrain -+ tcflow tcflush tcgetattr tcsendbreak tcsetattr )], -+ -+ time_h => [qw(CLK_TCK CLOCKS_PER_SEC NULL asctime clock ctime -+ difftime mktime strftime tzset tzname)], -+ -+ unistd_h => [qw(F_OK NULL R_OK SEEK_CUR SEEK_END SEEK_SET -+ STDERR_FILENO STDIN_FILENO STDOUT_FILENO W_OK X_OK -+ _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON -+ _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX -+ _PC_PIPE_BUF _PC_VDISABLE _POSIX_CHOWN_RESTRICTED -+ _POSIX_JOB_CONTROL _POSIX_NO_TRUNC _POSIX_SAVED_IDS -+ _POSIX_VDISABLE _POSIX_VERSION _SC_ARG_MAX -+ _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL -+ _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS -+ _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION -+ _exit access ctermid cuserid -+ dup2 dup execl execle execlp execv execve execvp -+ fpathconf fsync getcwd getegid geteuid getgid getgroups -+ getpid getuid isatty lseek pathconf pause setgid setpgid -+ setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)], -+ -+ utime_h => [], -+ -+); -+ -+# Exporter::export_tags(); -+{ -+ # De-duplicate the export list: -+ my %export; -+ @export{map {@$_} values %EXPORT_TAGS} = (); -+ # Doing the de-dup with a temporary hash has the advantage that the SVs in -+ # @EXPORT are actually shared hash key sacalars, which will save some memory. -+ push @EXPORT, keys %export; -+} -+ -+@EXPORT_OK = qw( -+ abs -+ alarm -+ atan2 -+ chdir -+ chmod -+ chown -+ close -+ closedir -+ cos -+ exit -+ exp -+ fcntl -+ fileno -+ fork -+ getc -+ getgrgid -+ getgrnam -+ getlogin -+ getpgrp -+ getppid -+ getpwnam -+ getpwuid -+ gmtime -+ isatty -+ kill -+ lchown -+ link -+ localtime -+ log -+ mkdir -+ nice -+ open -+ opendir -+ pipe -+ printf -+ rand -+ read -+ readdir -+ rename -+ rewinddir -+ rmdir -+ sin -+ sleep -+ sprintf -+ sqrt -+ srand -+ stat -+ system -+ time -+ times -+ umask -+ unlink -+ utime -+ wait -+ waitpid -+ write -+); -+ -+require Exporter; -+} -+ -+package POSIX::SigAction; -+ -+sub new { bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0, SAFE => 0}, $_[0] } -+sub handler { $_[0]->{HANDLER} = $_[1] if @_ > 1; $_[0]->{HANDLER} }; -+sub mask { $_[0]->{MASK} = $_[1] if @_ > 1; $_[0]->{MASK} }; -+sub flags { $_[0]->{FLAGS} = $_[1] if @_ > 1; $_[0]->{FLAGS} }; -+sub safe { $_[0]->{SAFE} = $_[1] if @_ > 1; $_[0]->{SAFE} }; -+ -+package POSIX::SigRt; -+ -+ -+sub _init { -+ $_SIGRTMIN = &POSIX::SIGRTMIN; -+ $_SIGRTMAX = &POSIX::SIGRTMAX; -+ $_sigrtn = $_SIGRTMAX - $_SIGRTMIN; -+} -+ -+sub _croak { -+ &_init unless defined $_sigrtn; -+ die "POSIX::SigRt not available" unless defined $_sigrtn && $_sigrtn > 0; -+} -+ -+sub _getsig { -+ &_croak; -+ my $rtsig = $_[0]; -+ # Allow (SIGRT)?MIN( + n)?, a common idiom when doing these things in C. -+ $rtsig = $_SIGRTMIN + ($1 || 0) -+ if $rtsig =~ /^(?:(?:SIG)?RT)?MIN(\s*\+\s*(\d+))?$/; -+ return $rtsig; -+} -+ -+sub _exist { -+ my $rtsig = _getsig($_[1]); -+ my $ok = $rtsig >= $_SIGRTMIN && $rtsig <= $_SIGRTMAX; -+ ($rtsig, $ok); -+} -+ -+sub _check { -+ my ($rtsig, $ok) = &_exist; -+ die "No POSIX::SigRt signal $_[1] (valid range SIGRTMIN..SIGRTMAX, or $_SIGRTMIN..$_SIGRTMAX)" -+ unless $ok; -+ return $rtsig; -+} -+ -+sub new { -+ my ($rtsig, $handler, $flags) = @_; -+ my $sigset = POSIX::SigSet->new($rtsig); -+ my $sigact = POSIX::SigAction->new($handler, -+ $sigset, -+ $flags); -+ POSIX::sigaction($rtsig, $sigact); -+} -+ -+sub EXISTS { &_exist } -+sub FETCH { my $rtsig = &_check; -+ my $oa = POSIX::SigAction->new(); -+ POSIX::sigaction($rtsig, undef, $oa); -+ return $oa->{HANDLER} } -+sub STORE { my $rtsig = &_check; new($rtsig, $_[2], $SIGACTION_FLAGS) } -+sub DELETE { delete $SIG{ &_check } } -+sub CLEAR { &_exist; delete @SIG{ &POSIX::SIGRTMIN .. &POSIX::SIGRTMAX } } -+sub SCALAR { &_croak; $_sigrtn + 1 } -diff --git a/ext/POSIX/lib/POSIX.pod b/ext/POSIX/lib/POSIX.pod -new file mode 100644 -index 0000000..64852e9 ---- /dev/null -+++ b/ext/POSIX/lib/POSIX.pod -@@ -0,0 +1,2218 @@ -+=head1 NAME -+ -+POSIX - Perl interface to IEEE Std 1003.1 -+ -+=head1 SYNOPSIS -+ -+ use POSIX; -+ use POSIX qw(setsid); -+ use POSIX qw(:errno_h :fcntl_h); -+ -+ printf "EINTR is %d\n", EINTR; -+ -+ $sess_id = POSIX::setsid(); -+ -+ $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644); -+ # note: that's a filedescriptor, *NOT* a filehandle -+ -+=head1 DESCRIPTION -+ -+The POSIX module permits you to access all (or nearly all) the standard -+POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish -+interfaces. -+ -+I<Everything is exported by default> with the exception of any POSIX -+functions with the same name as a built-in Perl function, such as -+C<abs>, C<alarm>, C<rmdir>, C<write>, etc.., which will be exported -+only if you ask for them explicitly. This is an unfortunate backwards -+compatibility feature. You can stop the exporting by saying C<use -+POSIX ()> and then use the fully qualified names (ie. C<POSIX::SEEK_END>). -+ -+This document gives a condensed list of the features available in the POSIX -+module. Consult your operating system's manpages for general information on -+most features. Consult L<perlfunc> for functions which are noted as being -+identical to Perl's builtin functions. -+ -+The first section describes POSIX functions from the 1003.1 specification. -+The second section describes some classes for signal objects, TTY objects, -+and other miscellaneous objects. The remaining sections list various -+constants and macros in an organization which roughly follows IEEE Std -+1003.1b-1993. -+ -+=head1 NOTE -+ -+The POSIX module is probably the most complex Perl module supplied with -+the standard distribution. It incorporates autoloading, namespace games, -+and dynamic loading of code that's in Perl, C, or both. It's a great -+source of wisdom. -+ -+=head1 CAVEATS -+ -+A few functions are not implemented because they are C specific. If you -+attempt to call these, they will print a message telling you that they -+aren't implemented, and suggest using the Perl equivalent should one -+exist. For example, trying to access the setjmp() call will elicit the -+message "setjmp() is C-specific: use eval {} instead". -+ -+Furthermore, some evil vendors will claim 1003.1 compliance, but in fact -+are not so: they will not pass the PCTS (POSIX Compliance Test Suites). -+For example, one vendor may not define EDEADLK, or the semantics of the -+errno values set by open(2) might not be quite right. Perl does not -+attempt to verify POSIX compliance. That means you can currently -+successfully say "use POSIX", and then later in your program you find -+that your vendor has been lax and there's no usable ICANON macro after -+all. This could be construed to be a bug. -+ -+=head1 FUNCTIONS -+ -+=over 8 -+ -+=item _exit -+ -+This is identical to the C function C<_exit()>. It exits the program -+immediately which means among other things buffered I/O is B<not> flushed. -+ -+Note that when using threads and in Linux this is B<not> a good way to -+exit a thread because in Linux processes and threads are kind of the -+same thing (Note: while this is the situation in early 2003 there are -+projects under way to have threads with more POSIXly semantics in Linux). -+If you want not to return from a thread, detach the thread. -+ -+=item abort -+ -+This is identical to the C function C<abort()>. It terminates the -+process with a C<SIGABRT> signal unless caught by a signal handler or -+if the handler does not return normally (it e.g. does a C<longjmp>). -+ -+=item abs -+ -+This is identical to Perl's builtin C<abs()> function, returning -+the absolute value of its numerical argument. -+ -+=item access -+ -+Determines the accessibility of a file. -+ -+ if( POSIX::access( "/", &POSIX::R_OK ) ){ -+ print "have read permission\n"; -+ } -+ -+Returns C<undef> on failure. Note: do not use C<access()> for -+security purposes. Between the C<access()> call and the operation -+you are preparing for the permissions might change: a classic -+I<race condition>. -+ -+=item acos -+ -+This is identical to the C function C<acos()>, returning -+the arcus cosine of its numerical argument. See also L<Math::Trig>. -+ -+=item alarm -+ -+This is identical to Perl's builtin C<alarm()> function, -+either for arming or disarming the C<SIGARLM> timer. -+ -+=item asctime -+ -+This is identical to the C function C<asctime()>. It returns -+a string of the form -+ -+ "Fri Jun 2 18:22:13 2000\n\0" -+ -+and it is called thusly -+ -+ $asctime = asctime($sec, $min, $hour, $mday, $mon, $year, -+ $wday, $yday, $isdst); -+ -+The C<$mon> is zero-based: January equals C<0>. The C<$year> is -+1900-based: 2001 equals C<101>. C<$wday> and C<$yday> default to zero -+(and are usually ignored anyway), and C<$isdst> defaults to -1. -+ -+=item asin -+ -+This is identical to the C function C<asin()>, returning -+the arcus sine of its numerical argument. See also L<Math::Trig>. -+ -+=item assert -+ -+Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module -+to achieve similar things. -+ -+=item atan -+ -+This is identical to the C function C<atan()>, returning the -+arcus tangent of its numerical argument. See also L<Math::Trig>. -+ -+=item atan2 -+ -+This is identical to Perl's builtin C<atan2()> function, returning -+the arcus tangent defined by its two numerical arguments, the I<y> -+coordinate and the I<x> coordinate. See also L<Math::Trig>. -+ -+=item atexit -+ -+atexit() is C-specific: use C<END {}> instead, see L<perlsub>. -+ -+=item atof -+ -+atof() is C-specific. Perl converts strings to numbers transparently. -+If you need to force a scalar to a number, add a zero to it. -+ -+=item atoi -+ -+atoi() is C-specific. Perl converts strings to numbers transparently. -+If you need to force a scalar to a number, add a zero to it. -+If you need to have just the integer part, see L<perlfunc/int>. -+ -+=item atol -+ -+atol() is C-specific. Perl converts strings to numbers transparently. -+If you need to force a scalar to a number, add a zero to it. -+If you need to have just the integer part, see L<perlfunc/int>. -+ -+=item bsearch -+ -+bsearch() not supplied. For doing binary search on wordlists, -+see L<Search::Dict>. -+ -+=item calloc -+ -+calloc() is C-specific. Perl does memory management transparently. -+ -+=item ceil -+ -+This is identical to the C function C<ceil()>, returning the smallest -+integer value greater than or equal to the given numerical argument. -+ -+=item chdir -+ -+This is identical to Perl's builtin C<chdir()> function, allowing -+one to change the working (default) directory, see L<perlfunc/chdir>. -+ -+=item chmod -+ -+This is identical to Perl's builtin C<chmod()> function, allowing -+one to change file and directory permissions, see L<perlfunc/chmod>. -+ -+=item chown -+ -+This is identical to Perl's builtin C<chown()> function, allowing one -+to change file and directory owners and groups, see L<perlfunc/chown>. -+ -+=item clearerr -+ -+Use the method C<IO::Handle::clearerr()> instead, to reset the error -+state (if any) and EOF state (if any) of the given stream. -+ -+=item clock -+ -+This is identical to the C function C<clock()>, returning the -+amount of spent processor time in microseconds. -+ -+=item close -+ -+Close the file. This uses file descriptors such as those obtained by calling -+C<POSIX::open>. -+ -+ $fd = POSIX::open( "foo", &POSIX::O_RDONLY ); -+ POSIX::close( $fd ); -+ -+Returns C<undef> on failure. -+ -+See also L<perlfunc/close>. -+ -+=item closedir -+ -+This is identical to Perl's builtin C<closedir()> function for closing -+a directory handle, see L<perlfunc/closedir>. -+ -+=item cos -+ -+This is identical to Perl's builtin C<cos()> function, for returning -+the cosine of its numerical argument, see L<perlfunc/cos>. -+See also L<Math::Trig>. -+ -+=item cosh -+ -+This is identical to the C function C<cosh()>, for returning -+the hyperbolic cosine of its numeric argument. See also L<Math::Trig>. -+ -+=item creat -+ -+Create a new file. This returns a file descriptor like the ones returned by -+C<POSIX::open>. Use C<POSIX::close> to close the file. -+ -+ $fd = POSIX::creat( "foo", 0611 ); -+ POSIX::close( $fd ); -+ -+See also L<perlfunc/sysopen> and its C<O_CREAT> flag. -+ -+=item ctermid -+ -+Generates the path name for the controlling terminal. -+ -+ $path = POSIX::ctermid(); -+ -+=item ctime -+ -+This is identical to the C function C<ctime()> and equivalent -+to C<asctime(localtime(...))>, see L</asctime> and L</localtime>. -+ -+=item cuserid -+ -+Get the login name of the owner of the current process. -+ -+ $name = POSIX::cuserid(); -+ -+=item difftime -+ -+This is identical to the C function C<difftime()>, for returning -+the time difference (in seconds) between two times (as returned -+by C<time()>), see L</time>. -+ -+=item div -+ -+div() is C-specific, use L<perlfunc/int> on the usual C</> division and -+the modulus C<%>. -+ -+=item dup -+ -+This is similar to the C function C<dup()>, for duplicating a file -+descriptor. -+ -+This uses file descriptors such as those obtained by calling -+C<POSIX::open>. -+ -+Returns C<undef> on failure. -+ -+=item dup2 -+ -+This is similar to the C function C<dup2()>, for duplicating a file -+descriptor to an another known file descriptor. -+ -+This uses file descriptors such as those obtained by calling -+C<POSIX::open>. -+ -+Returns C<undef> on failure. -+ -+=item errno -+ -+Returns the value of errno. -+ -+ $errno = POSIX::errno(); -+ -+This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>. -+ -+=item execl -+ -+execl() is C-specific, see L<perlfunc/exec>. -+ -+=item execle -+ -+execle() is C-specific, see L<perlfunc/exec>. -+ -+=item execlp -+ -+execlp() is C-specific, see L<perlfunc/exec>. -+ -+=item execv -+ -+execv() is C-specific, see L<perlfunc/exec>. -+ -+=item execve -+ -+execve() is C-specific, see L<perlfunc/exec>. -+ -+=item execvp -+ -+execvp() is C-specific, see L<perlfunc/exec>. -+ -+=item exit -+ -+This is identical to Perl's builtin C<exit()> function for exiting the -+program, see L<perlfunc/exit>. -+ -+=item exp -+ -+This is identical to Perl's builtin C<exp()> function for -+returning the exponent (I<e>-based) of the numerical argument, -+see L<perlfunc/exp>. -+ -+=item fabs -+ -+This is identical to Perl's builtin C<abs()> function for returning -+the absolute value of the numerical argument, see L<perlfunc/abs>. -+ -+=item fclose -+ -+Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>. -+ -+=item fcntl -+ -+This is identical to Perl's builtin C<fcntl()> function, -+see L<perlfunc/fcntl>. -+ -+=item fdopen -+ -+Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>. -+ -+=item feof -+ -+Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>. -+ -+=item ferror -+ -+Use method C<IO::Handle::error()> instead. -+ -+=item fflush -+ -+Use method C<IO::Handle::flush()> instead. -+See also L<perlvar/$OUTPUT_AUTOFLUSH>. -+ -+=item fgetc -+ -+Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>. -+ -+=item fgetpos -+ -+Use method C<IO::Seekable::getpos()> instead, or see L<L/seek>. -+ -+=item fgets -+ -+Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known -+as L<perlfunc/readline>. -+ -+=item fileno -+ -+Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>. -+ -+=item floor -+ -+This is identical to the C function C<floor()>, returning the largest -+integer value less than or equal to the numerical argument. -+ -+=item fmod -+ -+This is identical to the C function C<fmod()>. -+ -+ $r = fmod($x, $y); -+ -+It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>. -+The C<$r> has the same sign as C<$x> and magnitude (absolute value) -+less than the magnitude of C<$y>. -+ -+=item fopen -+ -+Use method C<IO::File::open()> instead, or see L<perlfunc/open>. -+ -+=item fork -+ -+This is identical to Perl's builtin C<fork()> function -+for duplicating the current process, see L<perlfunc/fork> -+and L<perlfork> if you are in Windows. -+ -+=item fpathconf -+ -+Retrieves the value of a configurable limit on a file or directory. This -+uses file descriptors such as those obtained by calling C<POSIX::open>. -+ -+The following will determine the maximum length of the longest allowable -+pathname on the filesystem which holds C</var/foo>. -+ -+ $fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY ); -+ $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX ); -+ -+Returns C<undef> on failure. -+ -+=item fprintf -+ -+fprintf() is C-specific, see L<perlfunc/printf> instead. -+ -+=item fputc -+ -+fputc() is C-specific, see L<perlfunc/print> instead. -+ -+=item fputs -+ -+fputs() is C-specific, see L<perlfunc/print> instead. -+ -+=item fread -+ -+fread() is C-specific, see L<perlfunc/read> instead. -+ -+=item free -+ -+free() is C-specific. Perl does memory management transparently. -+ -+=item freopen -+ -+freopen() is C-specific, see L<perlfunc/open> instead. -+ -+=item frexp -+ -+Return the mantissa and exponent of a floating-point number. -+ -+ ($mantissa, $exponent) = POSIX::frexp( 1.234e56 ); -+ -+=item fscanf -+ -+fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead. -+ -+=item fseek -+ -+Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>. -+ -+=item fsetpos -+ -+Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>. -+ -+=item fstat -+ -+Get file status. This uses file descriptors such as those obtained by -+calling C<POSIX::open>. The data returned is identical to the data from -+Perl's builtin C<stat> function. -+ -+ $fd = POSIX::open( "foo", &POSIX::O_RDONLY ); -+ @stats = POSIX::fstat( $fd ); -+ -+=item fsync -+ -+Use method C<IO::Handle::sync()> instead. -+ -+=item ftell -+ -+Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>. -+ -+=item fwrite -+ -+fwrite() is C-specific, see L<perlfunc/print> instead. -+ -+=item getc -+ -+This is identical to Perl's builtin C<getc()> function, -+see L<perlfunc/getc>. -+ -+=item getchar -+ -+Returns one character from STDIN. Identical to Perl's C<getc()>, -+see L<perlfunc/getc>. -+ -+=item getcwd -+ -+Returns the name of the current working directory. -+See also L<Cwd>. -+ -+=item getegid -+ -+Returns the effective group identifier. Similar to Perl' s builtin -+variable C<$(>, see L<perlvar/$EGID>. -+ -+=item getenv -+ -+Returns the value of the specified environment variable. -+The same information is available through the C<%ENV> array. -+ -+=item geteuid -+ -+Returns the effective user identifier. Identical to Perl's builtin C<$E<gt>> -+variable, see L<perlvar/$EUID>. -+ -+=item getgid -+ -+Returns the user's real group identifier. Similar to Perl's builtin -+variable C<$)>, see L<perlvar/$GID>. -+ -+=item getgrgid -+ -+This is identical to Perl's builtin C<getgrgid()> function for -+returning group entries by group identifiers, see -+L<perlfunc/getgrgid>. -+ -+=item getgrnam -+ -+This is identical to Perl's builtin C<getgrnam()> function for -+returning group entries by group names, see L<perlfunc/getgrnam>. -+ -+=item getgroups -+ -+Returns the ids of the user's supplementary groups. Similar to Perl's -+builtin variable C<$)>, see L<perlvar/$GID>. -+ -+=item getlogin -+ -+This is identical to Perl's builtin C<getlogin()> function for -+returning the user name associated with the current session, see -+L<perlfunc/getlogin>. -+ -+=item getpgrp -+ -+This is identical to Perl's builtin C<getpgrp()> function for -+returning the process group identifier of the current process, see -+L<perlfunc/getpgrp>. -+ -+=item getpid -+ -+Returns the process identifier. Identical to Perl's builtin -+variable C<$$>, see L<perlvar/$PID>. -+ -+=item getppid -+ -+This is identical to Perl's builtin C<getppid()> function for -+returning the process identifier of the parent process of the current -+process , see L<perlfunc/getppid>. -+ -+=item getpwnam -+ -+This is identical to Perl's builtin C<getpwnam()> function for -+returning user entries by user names, see L<perlfunc/getpwnam>. -+ -+=item getpwuid -+ -+This is identical to Perl's builtin C<getpwuid()> function for -+returning user entries by user identifiers, see L<perlfunc/getpwuid>. -+ -+=item gets -+ -+Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known -+as the C<readline()> function, see L<perlfunc/readline>. -+ -+B<NOTE>: if you have C programs that still use C<gets()>, be very -+afraid. The C<gets()> function is a source of endless grief because -+it has no buffer overrun checks. It should B<never> be used. The -+C<fgets()> function should be preferred instead. -+ -+=item getuid -+ -+Returns the user's identifier. Identical to Perl's builtin C<$E<lt>> variable, -+see L<perlvar/$UID>. -+ -+=item gmtime -+ -+This is identical to Perl's builtin C<gmtime()> function for -+converting seconds since the epoch to a date in Greenwich Mean Time, -+see L<perlfunc/gmtime>. -+ -+=item isalnum -+ -+This is identical to the C function, except that it can apply to a -+single character or to a whole string. Note that locale settings may -+affect what characters are considered C<isalnum>. Does not work on -+Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:alnum:]]/> construct instead, or possibly -+the C</\w/> construct. -+ -+=item isalpha -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<isalpha>. Does not work -+on Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:alpha:]]/> construct instead. -+ -+=item isatty -+ -+Returns a boolean indicating whether the specified filehandle is connected -+to a tty. Similar to the C<-t> operator, see L<perlfunc/-X>. -+ -+=item iscntrl -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<iscntrl>. Does not work -+on Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:cntrl:]]/> construct instead. -+ -+=item isdigit -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<isdigit> (unlikely, but -+still possible). Does not work on Unicode characters code point 256 -+or higher. Consider using regular expressions and the C</[[:digit:]]/> -+construct instead, or the C</\d/> construct. -+ -+=item isgraph -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<isgraph>. Does not work -+on Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:graph:]]/> construct instead. -+ -+=item islower -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<islower>. Does not work -+on Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:lower:]]/> construct instead. Do B<not> use -+C</[a-z]/>. -+ -+=item isprint -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<isprint>. Does not work -+on Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:print:]]/> construct instead. -+ -+=item ispunct -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<ispunct>. Does not work -+on Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:punct:]]/> construct instead. -+ -+=item isspace -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<isspace>. Does not work -+on Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:space:]]/> construct instead, or the C</\s/> -+construct. (Note that C</\s/> and C</[[:space:]]/> are slightly -+different in that C</[[:space:]]/> can normally match a vertical tab, -+while C</\s/> does not.) -+ -+=item isupper -+ -+This is identical to the C function, except that it can apply to -+a single character or to a whole string. Note that locale settings -+may affect what characters are considered C<isupper>. Does not work -+on Unicode characters code point 256 or higher. Consider using regular -+expressions and the C</[[:upper:]]/> construct instead. Do B<not> use -+C</[A-Z]/>. -+ -+=item isxdigit -+ -+This is identical to the C function, except that it can apply to a single -+character or to a whole string. Note that locale settings may affect what -+characters are considered C<isxdigit> (unlikely, but still possible). -+Does not work on Unicode characters code point 256 or higher. -+Consider using regular expressions and the C</[[:xdigit:]]/> -+construct instead, or simply C</[0-9a-f]/i>. -+ -+=item kill -+ -+This is identical to Perl's builtin C<kill()> function for sending -+signals to processes (often to terminate them), see L<perlfunc/kill>. -+ -+=item labs -+ -+(For returning absolute values of long integers.) -+labs() is C-specific, see L<perlfunc/abs> instead. -+ -+=item lchown -+ -+This is identical to the C function, except the order of arguments is -+consistent with Perl's builtin C<chown()> with the added restriction -+of only one path, not an list of paths. Does the same thing as the -+C<chown()> function but changes the owner of a symbolic link instead -+of the file the symbolic link points to. -+ -+=item ldexp -+ -+This is identical to the C function C<ldexp()> -+for multiplying floating point numbers with powers of two. -+ -+ $x_quadrupled = POSIX::ldexp($x, 2); -+ -+=item ldiv -+ -+(For computing dividends of long integers.) -+ldiv() is C-specific, use C</> and C<int()> instead. -+ -+=item link -+ -+This is identical to Perl's builtin C<link()> function -+for creating hard links into files, see L<perlfunc/link>. -+ -+=item localeconv -+ -+Get numeric formatting information. Returns a reference to a hash -+containing the current locale formatting values. -+ -+Here is how to query the database for the B<de> (Deutsch or German) locale. -+ -+ $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" ); -+ print "Locale = $loc\n"; -+ $lconv = POSIX::localeconv(); -+ print "decimal_point = ", $lconv->{decimal_point}, "\n"; -+ print "thousands_sep = ", $lconv->{thousands_sep}, "\n"; -+ print "grouping = ", $lconv->{grouping}, "\n"; -+ print "int_curr_symbol = ", $lconv->{int_curr_symbol}, "\n"; -+ print "currency_symbol = ", $lconv->{currency_symbol}, "\n"; -+ print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n"; -+ print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n"; -+ print "mon_grouping = ", $lconv->{mon_grouping}, "\n"; -+ print "positive_sign = ", $lconv->{positive_sign}, "\n"; -+ print "negative_sign = ", $lconv->{negative_sign}, "\n"; -+ print "int_frac_digits = ", $lconv->{int_frac_digits}, "\n"; -+ print "frac_digits = ", $lconv->{frac_digits}, "\n"; -+ print "p_cs_precedes = ", $lconv->{p_cs_precedes}, "\n"; -+ print "p_sep_by_space = ", $lconv->{p_sep_by_space}, "\n"; -+ print "n_cs_precedes = ", $lconv->{n_cs_precedes}, "\n"; -+ print "n_sep_by_space = ", $lconv->{n_sep_by_space}, "\n"; -+ print "p_sign_posn = ", $lconv->{p_sign_posn}, "\n"; -+ print "n_sign_posn = ", $lconv->{n_sign_posn}, "\n"; -+ -+=item localtime -+ -+This is identical to Perl's builtin C<localtime()> function for -+converting seconds since the epoch to a date see L<perlfunc/localtime>. -+ -+=item log -+ -+This is identical to Perl's builtin C<log()> function, -+returning the natural (I<e>-based) logarithm of the numerical argument, -+see L<perlfunc/log>. -+ -+=item log10 -+ -+This is identical to the C function C<log10()>, -+returning the 10-base logarithm of the numerical argument. -+You can also use -+ -+ sub log10 { log($_[0]) / log(10) } -+ -+or -+ -+ sub log10 { log($_[0]) / 2.30258509299405 } -+ -+or -+ -+ sub log10 { log($_[0]) * 0.434294481903252 } -+ -+=item longjmp -+ -+longjmp() is C-specific: use L<perlfunc/die> instead. -+ -+=item lseek -+ -+Move the file's read/write position. This uses file descriptors such as -+those obtained by calling C<POSIX::open>. -+ -+ $fd = POSIX::open( "foo", &POSIX::O_RDONLY ); -+ $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET ); -+ -+Returns C<undef> on failure. -+ -+=item malloc -+ -+malloc() is C-specific. Perl does memory management transparently. -+ -+=item mblen -+ -+This is identical to the C function C<mblen()>. -+Perl does not have any support for the wide and multibyte -+characters of the C standards, so this might be a rather -+useless function. -+ -+=item mbstowcs -+ -+This is identical to the C function C<mbstowcs()>. -+Perl does not have any support for the wide and multibyte -+characters of the C standards, so this might be a rather -+useless function. -+ -+=item mbtowc -+ -+This is identical to the C function C<mbtowc()>. -+Perl does not have any support for the wide and multibyte -+characters of the C standards, so this might be a rather -+useless function. -+ -+=item memchr -+ -+memchr() is C-specific, see L<perlfunc/index> instead. -+ -+=item memcmp -+ -+memcmp() is C-specific, use C<eq> instead, see L<perlop>. -+ -+=item memcpy -+ -+memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>. -+ -+=item memmove -+ -+memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>. -+ -+=item memset -+ -+memset() is C-specific, use C<x> instead, see L<perlop>. -+ -+=item mkdir -+ -+This is identical to Perl's builtin C<mkdir()> function -+for creating directories, see L<perlfunc/mkdir>. -+ -+=item mkfifo -+ -+This is similar to the C function C<mkfifo()> for creating -+FIFO special files. -+ -+ if (mkfifo($path, $mode)) { .... -+ -+Returns C<undef> on failure. The C<$mode> is similar to the -+mode of C<mkdir()>, see L<perlfunc/mkdir>, though for C<mkfifo> -+you B<must> specify the C<$mode>. -+ -+=item mktime -+ -+Convert date/time info to a calendar time. -+ -+Synopsis: -+ -+ mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = -1) -+ -+The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero. -+I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The -+year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the -+year 2001 is 101. Consult your system's C<mktime()> manpage for details -+about these and the other arguments. -+ -+Calendar time for December 12, 1995, at 10:30 am. -+ -+ $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 ); -+ print "Date = ", POSIX::ctime($time_t); -+ -+Returns C<undef> on failure. -+ -+=item modf -+ -+Return the integral and fractional parts of a floating-point number. -+ -+ ($fractional, $integral) = POSIX::modf( 3.14 ); -+ -+=item nice -+ -+This is similar to the C function C<nice()>, for changing -+the scheduling preference of the current process. Positive -+arguments mean more polite process, negative values more -+needy process. Normal user processes can only be more polite. -+ -+Returns C<undef> on failure. -+ -+=item offsetof -+ -+offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead. -+ -+=item open -+ -+Open a file for reading for writing. This returns file descriptors, not -+Perl filehandles. Use C<POSIX::close> to close the file. -+ -+Open a file read-only with mode 0666. -+ -+ $fd = POSIX::open( "foo" ); -+ -+Open a file for read and write. -+ -+ $fd = POSIX::open( "foo", &POSIX::O_RDWR ); -+ -+Open a file for write, with truncation. -+ -+ $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC ); -+ -+Create a new file with mode 0640. Set up the file for writing. -+ -+ $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 ); -+ -+Returns C<undef> on failure. -+ -+See also L<perlfunc/sysopen>. -+ -+=item opendir -+ -+Open a directory for reading. -+ -+ $dir = POSIX::opendir( "/var" ); -+ @files = POSIX::readdir( $dir ); -+ POSIX::closedir( $dir ); -+ -+Returns C<undef> on failure. -+ -+=item pathconf -+ -+Retrieves the value of a configurable limit on a file or directory. -+ -+The following will determine the maximum length of the longest allowable -+pathname on the filesystem which holds C</var>. -+ -+ $path_max = POSIX::pathconf( "/var", &POSIX::_PC_PATH_MAX ); -+ -+Returns C<undef> on failure. -+ -+=item pause -+ -+This is similar to the C function C<pause()>, which suspends -+the execution of the current process until a signal is received. -+ -+Returns C<undef> on failure. -+ -+=item perror -+ -+This is identical to the C function C<perror()>, which outputs to the -+standard error stream the specified message followed by ": " and the -+current error string. Use the C<warn()> function and the C<$!> -+variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>. -+ -+=item pipe -+ -+Create an interprocess channel. This returns file descriptors like those -+returned by C<POSIX::open>. -+ -+ my ($read, $write) = POSIX::pipe(); -+ POSIX::write( $write, "hello", 5 ); -+ POSIX::read( $read, $buf, 5 ); -+ -+See also L<perlfunc/pipe>. -+ -+=item pow -+ -+Computes C<$x> raised to the power C<$exponent>. -+ -+ $ret = POSIX::pow( $x, $exponent ); -+ -+You can also use the C<**> operator, see L<perlop>. -+ -+=item printf -+ -+Formats and prints the specified arguments to STDOUT. -+See also L<perlfunc/printf>. -+ -+=item putc -+ -+putc() is C-specific, see L<perlfunc/print> instead. -+ -+=item putchar -+ -+putchar() is C-specific, see L<perlfunc/print> instead. -+ -+=item puts -+ -+puts() is C-specific, see L<perlfunc/print> instead. -+ -+=item qsort -+ -+qsort() is C-specific, see L<perlfunc/sort> instead. -+ -+=item raise -+ -+Sends the specified signal to the current process. -+See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>. -+ -+=item rand -+ -+C<rand()> is non-portable, see L<perlfunc/rand> instead. -+ -+=item read -+ -+Read from a file. This uses file descriptors such as those obtained by -+calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the -+read then Perl will extend it to make room for the request. -+ -+ $fd = POSIX::open( "foo", &POSIX::O_RDONLY ); -+ $bytes = POSIX::read( $fd, $buf, 3 ); -+ -+Returns C<undef> on failure. -+ -+See also L<perlfunc/sysread>. -+ -+=item readdir -+ -+This is identical to Perl's builtin C<readdir()> function -+for reading directory entries, see L<perlfunc/readdir>. -+ -+=item realloc -+ -+realloc() is C-specific. Perl does memory management transparently. -+ -+=item remove -+ -+This is identical to Perl's builtin C<unlink()> function -+for removing files, see L<perlfunc/unlink>. -+ -+=item rename -+ -+This is identical to Perl's builtin C<rename()> function -+for renaming files, see L<perlfunc/rename>. -+ -+=item rewind -+ -+Seeks to the beginning of the file. -+ -+=item rewinddir -+ -+This is identical to Perl's builtin C<rewinddir()> function for -+rewinding directory entry streams, see L<perlfunc/rewinddir>. -+ -+=item rmdir -+ -+This is identical to Perl's builtin C<rmdir()> function -+for removing (empty) directories, see L<perlfunc/rmdir>. -+ -+=item scanf -+ -+scanf() is C-specific, use E<lt>E<gt> and regular expressions instead, -+see L<perlre>. -+ -+=item setgid -+ -+Sets the real group identifier and the effective group identifier for -+this process. Similar to assigning a value to the Perl's builtin -+C<$)> variable, see L<perlvar/$EGID>, except that the latter -+will change only the real user identifier, and that the setgid() -+uses only a single numeric argument, as opposed to a space-separated -+list of numbers. -+ -+=item setjmp -+ -+C<setjmp()> is C-specific: use C<eval {}> instead, -+see L<perlfunc/eval>. -+ -+=item setlocale -+ -+Modifies and queries program's locale. The following examples assume -+ -+ use POSIX qw(setlocale LC_ALL LC_CTYPE); -+ -+has been issued. -+ -+The following will set the traditional UNIX system locale behavior -+(the second argument C<"C">). -+ -+ $loc = setlocale( LC_ALL, "C" ); -+ -+The following will query the current LC_CTYPE category. (No second -+argument means 'query'.) -+ -+ $loc = setlocale( LC_CTYPE ); -+ -+The following will set the LC_CTYPE behaviour according to the locale -+environment variables (the second argument C<"">). -+Please see your systems C<setlocale(3)> documentation for the locale -+environment variables' meaning or consult L<perllocale>. -+ -+ $loc = setlocale( LC_CTYPE, "" ); -+ -+The following will set the LC_COLLATE behaviour to Argentinian -+Spanish. B<NOTE>: The naming and availability of locales depends on -+your operating system. Please consult L<perllocale> for how to find -+out which locales are available in your system. -+ -+ $loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" ); -+ -+=item setpgid -+ -+This is similar to the C function C<setpgid()> for -+setting the process group identifier of the current process. -+ -+Returns C<undef> on failure. -+ -+=item setsid -+ -+This is identical to the C function C<setsid()> for -+setting the session identifier of the current process. -+ -+=item setuid -+ -+Sets the real user identifier and the effective user identifier for -+this process. Similar to assigning a value to the Perl's builtin -+C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter -+will change only the real user identifier. -+ -+=item sigaction -+ -+Detailed signal management. This uses C<POSIX::SigAction> objects for -+the C<action> and C<oldaction> arguments (the oldaction can also be -+just a hash reference). Consult your system's C<sigaction> manpage -+for details, see also C<POSIX::SigRt>. -+ -+Synopsis: -+ -+ sigaction(signal, action, oldaction = 0) -+ -+Returns C<undef> on failure. The C<signal> must be a number (like -+SIGHUP), not a string (like "SIGHUP"), though Perl does try hard -+to understand you. -+ -+If you use the SA_SIGINFO flag, the signal handler will in addition to -+the first argument, the signal name, also receive a second argument, a -+hash reference, inside which are the following keys with the following -+semantics, as defined by POSIX/SUSv3: -+ -+ signo the signal number -+ errno the error number -+ code if this is zero or less, the signal was sent by -+ a user process and the uid and pid make sense, -+ otherwise the signal was sent by the kernel -+ -+The following are also defined by POSIX/SUSv3, but unfortunately -+not very widely implemented: -+ -+ pid the process id generating the signal -+ uid the uid of the process id generating the signal -+ status exit value or signal for SIGCHLD -+ band band event for SIGPOLL -+ -+A third argument is also passed to the handler, which contains a copy -+of the raw binary contents of the siginfo structure: if a system has -+some non-POSIX fields, this third argument is where to unpack() them -+from. -+ -+Note that not all siginfo values make sense simultaneously (some are -+valid only for certain signals, for example), and not all values make -+sense from Perl perspective, you should to consult your system's -+C<sigaction> and possibly also C<siginfo> documentation. -+ -+=item siglongjmp -+ -+siglongjmp() is C-specific: use L<perlfunc/die> instead. -+ -+=item sigpending -+ -+Examine signals that are blocked and pending. This uses C<POSIX::SigSet> -+objects for the C<sigset> argument. Consult your system's C<sigpending> -+manpage for details. -+ -+Synopsis: -+ -+ sigpending(sigset) -+ -+Returns C<undef> on failure. -+ -+=item sigprocmask -+ -+Change and/or examine calling process's signal mask. This uses -+C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments. -+Consult your system's C<sigprocmask> manpage for details. -+ -+Synopsis: -+ -+ sigprocmask(how, sigset, oldsigset = 0) -+ -+Returns C<undef> on failure. -+ -+=item sigsetjmp -+ -+C<sigsetjmp()> is C-specific: use C<eval {}> instead, -+see L<perlfunc/eval>. -+ -+=item sigsuspend -+ -+Install a signal mask and suspend process until signal arrives. This uses -+C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your -+system's C<sigsuspend> manpage for details. -+ -+Synopsis: -+ -+ sigsuspend(signal_mask) -+ -+Returns C<undef> on failure. -+ -+=item sin -+ -+This is identical to Perl's builtin C<sin()> function -+for returning the sine of the numerical argument, -+see L<perlfunc/sin>. See also L<Math::Trig>. -+ -+=item sinh -+ -+This is identical to the C function C<sinh()> -+for returning the hyperbolic sine of the numerical argument. -+See also L<Math::Trig>. -+ -+=item sleep -+ -+This is functionally identical to Perl's builtin C<sleep()> function -+for suspending the execution of the current for process for certain -+number of seconds, see L<perlfunc/sleep>. There is one significant -+difference, however: C<POSIX::sleep()> returns the number of -+B<unslept> seconds, while the C<CORE::sleep()> returns the -+number of slept seconds. -+ -+=item sprintf -+ -+This is similar to Perl's builtin C<sprintf()> function -+for returning a string that has the arguments formatted as requested, -+see L<perlfunc/sprintf>. -+ -+=item sqrt -+ -+This is identical to Perl's builtin C<sqrt()> function. -+for returning the square root of the numerical argument, -+see L<perlfunc/sqrt>. -+ -+=item srand -+ -+Give a seed the pseudorandom number generator, see L<perlfunc/srand>. -+ -+=item sscanf -+ -+sscanf() is C-specific, use regular expressions instead, -+see L<perlre>. -+ -+=item stat -+ -+This is identical to Perl's builtin C<stat()> function -+for returning information about files and directories. -+ -+=item strcat -+ -+strcat() is C-specific, use C<.=> instead, see L<perlop>. -+ -+=item strchr -+ -+strchr() is C-specific, see L<perlfunc/index> instead. -+ -+=item strcmp -+ -+strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>. -+ -+=item strcoll -+ -+This is identical to the C function C<strcoll()> -+for collating (comparing) strings transformed using -+the C<strxfrm()> function. Not really needed since -+Perl can do this transparently, see L<perllocale>. -+ -+=item strcpy -+ -+strcpy() is C-specific, use C<=> instead, see L<perlop>. -+ -+=item strcspn -+ -+strcspn() is C-specific, use regular expressions instead, -+see L<perlre>. -+ -+=item strerror -+ -+Returns the error string for the specified errno. -+Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>. -+ -+=item strftime -+ -+Convert date and time information to string. Returns the string. -+ -+Synopsis: -+ -+ strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1) -+ -+The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero. -+I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The -+year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the -+year 2001 is 101. Consult your system's C<strftime()> manpage for details -+about these and the other arguments. -+ -+If you want your code to be portable, your format (C<fmt>) argument -+should use only the conversion specifiers defined by the ANSI C -+standard (C89, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>. -+But even then, the B<results> of some of the conversion specifiers are -+non-portable. For example, the specifiers C<aAbBcpZ> change according -+to the locale settings of the user, and both how to set locales (the -+locale names) and what output to expect are non-standard. -+The specifier C<c> changes according to the timezone settings of the -+user and the timezone computation rules of the operating system. -+The C<Z> specifier is notoriously unportable since the names of -+timezones are non-standard. Sticking to the numeric specifiers is the -+safest route. -+ -+The given arguments are made consistent as though by calling -+C<mktime()> before calling your system's C<strftime()> function, -+except that the C<isdst> value is not affected. -+ -+The string for Tuesday, December 12, 1995. -+ -+ $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 ); -+ print "$str\n"; -+ -+=item strlen -+ -+strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>. -+ -+=item strncat -+ -+strncat() is C-specific, use C<.=> instead, see L<perlop>. -+ -+=item strncmp -+ -+strncmp() is C-specific, use C<eq> instead, see L<perlop>. -+ -+=item strncpy -+ -+strncpy() is C-specific, use C<=> instead, see L<perlop>. -+ -+=item strpbrk -+ -+strpbrk() is C-specific, use regular expressions instead, -+see L<perlre>. -+ -+=item strrchr -+ -+strrchr() is C-specific, see L<perlfunc/rindex> instead. -+ -+=item strspn -+ -+strspn() is C-specific, use regular expressions instead, -+see L<perlre>. -+ -+=item strstr -+ -+This is identical to Perl's builtin C<index()> function, -+see L<perlfunc/index>. -+ -+=item strtod -+ -+String to double translation. Returns the parsed number and the number -+of characters in the unparsed portion of the string. Truly -+POSIX-compliant systems set $! ($ERRNO) to indicate a translation -+error, so clear $! before calling strtod. However, non-POSIX systems -+may not check for overflow, and therefore will never set $!. -+ -+strtod should respect any POSIX I<setlocale()> settings. -+ -+To parse a string $str as a floating point number use -+ -+ $! = 0; -+ ($num, $n_unparsed) = POSIX::strtod($str); -+ -+The second returned item and $! can be used to check for valid input: -+ -+ if (($str eq '') || ($n_unparsed != 0) || $!) { -+ die "Non-numeric input $str" . ($! ? ": $!\n" : "\n"); -+ } -+ -+When called in a scalar context strtod returns the parsed number. -+ -+=item strtok -+ -+strtok() is C-specific, use regular expressions instead, see -+L<perlre>, or L<perlfunc/split>. -+ -+=item strtol -+ -+String to (long) integer translation. Returns the parsed number and -+the number of characters in the unparsed portion of the string. Truly -+POSIX-compliant systems set $! ($ERRNO) to indicate a translation -+error, so clear $! before calling strtol. However, non-POSIX systems -+may not check for overflow, and therefore will never set $!. -+ -+strtol should respect any POSIX I<setlocale()> settings. -+ -+To parse a string $str as a number in some base $base use -+ -+ $! = 0; -+ ($num, $n_unparsed) = POSIX::strtol($str, $base); -+ -+The base should be zero or between 2 and 36, inclusive. When the base -+is zero or omitted strtol will use the string itself to determine the -+base: a leading "0x" or "0X" means hexadecimal; a leading "0" means -+octal; any other leading characters mean decimal. Thus, "1234" is -+parsed as a decimal number, "01234" as an octal number, and "0x1234" -+as a hexadecimal number. -+ -+The second returned item and $! can be used to check for valid input: -+ -+ if (($str eq '') || ($n_unparsed != 0) || !$!) { -+ die "Non-numeric input $str" . $! ? ": $!\n" : "\n"; -+ } -+ -+When called in a scalar context strtol returns the parsed number. -+ -+=item strtoul -+ -+String to unsigned (long) integer translation. strtoul() is identical -+to strtol() except that strtoul() only parses unsigned integers. See -+L</strtol> for details. -+ -+Note: Some vendors supply strtod() and strtol() but not strtoul(). -+Other vendors that do supply strtoul() parse "-1" as a valid value. -+ -+=item strxfrm -+ -+String transformation. Returns the transformed string. -+ -+ $dst = POSIX::strxfrm( $src ); -+ -+Used in conjunction with the C<strcoll()> function, see L</strcoll>. -+ -+Not really needed since Perl can do this transparently, see -+L<perllocale>. -+ -+=item sysconf -+ -+Retrieves values of system configurable variables. -+ -+The following will get the machine's clock speed. -+ -+ $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK ); -+ -+Returns C<undef> on failure. -+ -+=item system -+ -+This is identical to Perl's builtin C<system()> function, see -+L<perlfunc/system>. -+ -+=item tan -+ -+This is identical to the C function C<tan()>, returning the -+tangent of the numerical argument. See also L<Math::Trig>. -+ -+=item tanh -+ -+This is identical to the C function C<tanh()>, returning the -+hyperbolic tangent of the numerical argument. See also L<Math::Trig>. -+ -+=item tcdrain -+ -+This is similar to the C function C<tcdrain()> for draining -+the output queue of its argument stream. -+ -+Returns C<undef> on failure. -+ -+=item tcflow -+ -+This is similar to the C function C<tcflow()> for controlling -+the flow of its argument stream. -+ -+Returns C<undef> on failure. -+ -+=item tcflush -+ -+This is similar to the C function C<tcflush()> for flushing -+the I/O buffers of its argument stream. -+ -+Returns C<undef> on failure. -+ -+=item tcgetpgrp -+ -+This is identical to the C function C<tcgetpgrp()> for returning the -+process group identifier of the foreground process group of the controlling -+terminal. -+ -+=item tcsendbreak -+ -+This is similar to the C function C<tcsendbreak()> for sending -+a break on its argument stream. -+ -+Returns C<undef> on failure. -+ -+=item tcsetpgrp -+ -+This is similar to the C function C<tcsetpgrp()> for setting the -+process group identifier of the foreground process group of the controlling -+terminal. -+ -+Returns C<undef> on failure. -+ -+=item time -+ -+This is identical to Perl's builtin C<time()> function -+for returning the number of seconds since the epoch -+(whatever it is for the system), see L<perlfunc/time>. -+ -+=item times -+ -+The times() function returns elapsed realtime since some point in the past -+(such as system startup), user and system times for this process, and user -+and system times used by child processes. All times are returned in clock -+ticks. -+ -+ ($realtime, $user, $system, $cuser, $csystem) = POSIX::times(); -+ -+Note: Perl's builtin C<times()> function returns four values, measured in -+seconds. -+ -+=item tmpfile -+ -+Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>. -+ -+=item tmpnam -+ -+Returns a name for a temporary file. -+ -+ $tmpfile = POSIX::tmpnam(); -+ -+For security reasons, which are probably detailed in your system's -+documentation for the C library tmpnam() function, this interface -+should not be used; instead see L<File::Temp>. -+ -+=item tolower -+ -+This is identical to the C function, except that it can apply to a single -+character or to a whole string. Consider using the C<lc()> function, -+see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish -+strings. -+ -+=item toupper -+ -+This is identical to the C function, except that it can apply to a single -+character or to a whole string. Consider using the C<uc()> function, -+see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish -+strings. -+ -+=item ttyname -+ -+This is identical to the C function C<ttyname()> for returning the -+name of the current terminal. -+ -+=item tzname -+ -+Retrieves the time conversion information from the C<tzname> variable. -+ -+ POSIX::tzset(); -+ ($std, $dst) = POSIX::tzname(); -+ -+=item tzset -+ -+This is identical to the C function C<tzset()> for setting -+the current timezone based on the environment variable C<TZ>, -+to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()> -+functions. -+ -+=item umask -+ -+This is identical to Perl's builtin C<umask()> function -+for setting (and querying) the file creation permission mask, -+see L<perlfunc/umask>. -+ -+=item uname -+ -+Get name of current operating system. -+ -+ ($sysname, $nodename, $release, $version, $machine) = POSIX::uname(); -+ -+Note that the actual meanings of the various fields are not -+that well standardized, do not expect any great portability. -+The C<$sysname> might be the name of the operating system, -+the C<$nodename> might be the name of the host, the C<$release> -+might be the (major) release number of the operating system, -+the C<$version> might be the (minor) release number of the -+operating system, and the C<$machine> might be a hardware identifier. -+Maybe. -+ -+=item ungetc -+ -+Use method C<IO::Handle::ungetc()> instead. -+ -+=item unlink -+ -+This is identical to Perl's builtin C<unlink()> function -+for removing files, see L<perlfunc/unlink>. -+ -+=item utime -+ -+This is identical to Perl's builtin C<utime()> function -+for changing the time stamps of files and directories, -+see L<perlfunc/utime>. -+ -+=item vfprintf -+ -+vfprintf() is C-specific, see L<perlfunc/printf> instead. -+ -+=item vprintf -+ -+vprintf() is C-specific, see L<perlfunc/printf> instead. -+ -+=item vsprintf -+ -+vsprintf() is C-specific, see L<perlfunc/sprintf> instead. -+ -+=item wait -+ -+This is identical to Perl's builtin C<wait()> function, -+see L<perlfunc/wait>. -+ -+=item waitpid -+ -+Wait for a child process to change state. This is identical to Perl's -+builtin C<waitpid()> function, see L<perlfunc/waitpid>. -+ -+ $pid = POSIX::waitpid( -1, POSIX::WNOHANG ); -+ print "status = ", ($? / 256), "\n"; -+ -+=item wcstombs -+ -+This is identical to the C function C<wcstombs()>. -+Perl does not have any support for the wide and multibyte -+characters of the C standards, so this might be a rather -+useless function. -+ -+=item wctomb -+ -+This is identical to the C function C<wctomb()>. -+Perl does not have any support for the wide and multibyte -+characters of the C standards, so this might be a rather -+useless function. -+ -+=item write -+ -+Write to a file. This uses file descriptors such as those obtained by -+calling C<POSIX::open>. -+ -+ $fd = POSIX::open( "foo", &POSIX::O_WRONLY ); -+ $buf = "hello"; -+ $bytes = POSIX::write( $fd, $buf, 5 ); -+ -+Returns C<undef> on failure. -+ -+See also L<perlfunc/syswrite>. -+ -+=back -+ -+=head1 CLASSES -+ -+=head2 POSIX::SigAction -+ -+=over 8 -+ -+=item new -+ -+Creates a new C<POSIX::SigAction> object which corresponds to the C -+C<struct sigaction>. This object will be destroyed automatically when -+it is no longer needed. The first parameter is the handler, a sub -+reference. The second parameter is a C<POSIX::SigSet> object, it -+defaults to the empty set. The third parameter contains the -+C<sa_flags>, it defaults to 0. -+ -+ $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT); -+ $sigaction = POSIX::SigAction->new( \&handler, $sigset, &POSIX::SA_NOCLDSTOP ); -+ -+This C<POSIX::SigAction> object is intended for use with the C<POSIX::sigaction()> -+function. -+ -+=back -+ -+=over 8 -+ -+=item handler -+ -+=item mask -+ -+=item flags -+ -+accessor functions to get/set the values of a SigAction object. -+ -+ $sigset = $sigaction->mask; -+ $sigaction->flags(&POSIX::SA_RESTART); -+ -+=item safe -+ -+accessor function for the "safe signals" flag of a SigAction object; see -+L<perlipc> for general information on safe (a.k.a. "deferred") signals. If -+you wish to handle a signal safely, use this accessor to set the "safe" flag -+in the C<POSIX::SigAction> object: -+ -+ $sigaction->safe(1); -+ -+You may also examine the "safe" flag on the output action object which is -+filled in when given as the third parameter to C<POSIX::sigaction()>: -+ -+ sigaction(SIGINT, $new_action, $old_action); -+ if ($old_action->safe) { -+ # previous SIGINT handler used safe signals -+ } -+ -+=back -+ -+=head2 POSIX::SigRt -+ -+=over 8 -+ -+=item %SIGRT -+ -+A hash of the POSIX realtime signal handlers. It is an extension of -+the standard %SIG, the $POSIX::SIGRT{SIGRTMIN} is roughly equivalent -+to $SIG{SIGRTMIN}, but the right POSIX moves (see below) are made with -+the POSIX::SigSet and POSIX::sigaction instead of accessing the %SIG. -+ -+You can set the %POSIX::SIGRT elements to set the POSIX realtime -+signal handlers, use C<delete> and C<exists> on the elements, and use -+C<scalar> on the C<%POSIX::SIGRT> to find out how many POSIX realtime -+signals there are available (SIGRTMAX - SIGRTMIN + 1, the SIGRTMAX is -+a valid POSIX realtime signal). -+ -+Setting the %SIGRT elements is equivalent to calling this: -+ -+ sub new { -+ my ($rtsig, $handler, $flags) = @_; -+ my $sigset = POSIX::SigSet($rtsig); -+ my $sigact = POSIX::SigAction->new($handler, $sigset, $flags); -+ sigaction($rtsig, $sigact); -+ } -+ -+The flags default to zero, if you want something different you can -+either use C<local> on $POSIX::SigRt::SIGACTION_FLAGS, or you can -+derive from POSIX::SigRt and define your own C<new()> (the tied hash -+STORE method of the %SIGRT calls C<new($rtsig, $handler, $SIGACTION_FLAGS)>, -+where the $rtsig ranges from zero to SIGRTMAX - SIGRTMIN + 1). -+ -+Just as with any signal, you can use sigaction($rtsig, undef, $oa) to -+retrieve the installed signal handler (or, rather, the signal action). -+ -+B<NOTE:> whether POSIX realtime signals really work in your system, or -+whether Perl has been compiled so that it works with them, is outside -+of this discussion. -+ -+=item SIGRTMIN -+ -+Return the minimum POSIX realtime signal number available, or C<undef> -+if no POSIX realtime signals are available. -+ -+=item SIGRTMAX -+ -+Return the maximum POSIX realtime signal number available, or C<undef> -+if no POSIX realtime signals are available. -+ -+=back -+ -+=head2 POSIX::SigSet -+ -+=over 8 -+ -+=item new -+ -+Create a new SigSet object. This object will be destroyed automatically -+when it is no longer needed. Arguments may be supplied to initialize the -+set. -+ -+Create an empty set. -+ -+ $sigset = POSIX::SigSet->new; -+ -+Create a set with SIGUSR1. -+ -+ $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 ); -+ -+=item addset -+ -+Add a signal to a SigSet object. -+ -+ $sigset->addset( &POSIX::SIGUSR2 ); -+ -+Returns C<undef> on failure. -+ -+=item delset -+ -+Remove a signal from the SigSet object. -+ -+ $sigset->delset( &POSIX::SIGUSR2 ); -+ -+Returns C<undef> on failure. -+ -+=item emptyset -+ -+Initialize the SigSet object to be empty. -+ -+ $sigset->emptyset(); -+ -+Returns C<undef> on failure. -+ -+=item fillset -+ -+Initialize the SigSet object to include all signals. -+ -+ $sigset->fillset(); -+ -+Returns C<undef> on failure. -+ -+=item ismember -+ -+Tests the SigSet object to see if it contains a specific signal. -+ -+ if( $sigset->ismember( &POSIX::SIGUSR1 ) ){ -+ print "contains SIGUSR1\n"; -+ } -+ -+=back -+ -+=head2 POSIX::Termios -+ -+=over 8 -+ -+=item new -+ -+Create a new Termios object. This object will be destroyed automatically -+when it is no longer needed. A Termios object corresponds to the termios -+C struct. new() mallocs a new one, getattr() fills it from a file descriptor, -+and setattr() sets a file descriptor's parameters to match Termios' contents. -+ -+ $termios = POSIX::Termios->new; -+ -+=item getattr -+ -+Get terminal control attributes. -+ -+Obtain the attributes for stdin. -+ -+ $termios->getattr( 0 ) # Recommended for clarity. -+ $termios->getattr() -+ -+Obtain the attributes for stdout. -+ -+ $termios->getattr( 1 ) -+ -+Returns C<undef> on failure. -+ -+=item getcc -+ -+Retrieve a value from the c_cc field of a termios object. The c_cc field is -+an array so an index must be specified. -+ -+ $c_cc[1] = $termios->getcc(1); -+ -+=item getcflag -+ -+Retrieve the c_cflag field of a termios object. -+ -+ $c_cflag = $termios->getcflag; -+ -+=item getiflag -+ -+Retrieve the c_iflag field of a termios object. -+ -+ $c_iflag = $termios->getiflag; -+ -+=item getispeed -+ -+Retrieve the input baud rate. -+ -+ $ispeed = $termios->getispeed; -+ -+=item getlflag -+ -+Retrieve the c_lflag field of a termios object. -+ -+ $c_lflag = $termios->getlflag; -+ -+=item getoflag -+ -+Retrieve the c_oflag field of a termios object. -+ -+ $c_oflag = $termios->getoflag; -+ -+=item getospeed -+ -+Retrieve the output baud rate. -+ -+ $ospeed = $termios->getospeed; -+ -+=item setattr -+ -+Set terminal control attributes. -+ -+Set attributes immediately for stdout. -+ -+ $termios->setattr( 1, &POSIX::TCSANOW ); -+ -+Returns C<undef> on failure. -+ -+=item setcc -+ -+Set a value in the c_cc field of a termios object. The c_cc field is an -+array so an index must be specified. -+ -+ $termios->setcc( &POSIX::VEOF, 1 ); -+ -+=item setcflag -+ -+Set the c_cflag field of a termios object. -+ -+ $termios->setcflag( $c_cflag | &POSIX::CLOCAL ); -+ -+=item setiflag -+ -+Set the c_iflag field of a termios object. -+ -+ $termios->setiflag( $c_iflag | &POSIX::BRKINT ); -+ -+=item setispeed -+ -+Set the input baud rate. -+ -+ $termios->setispeed( &POSIX::B9600 ); -+ -+Returns C<undef> on failure. -+ -+=item setlflag -+ -+Set the c_lflag field of a termios object. -+ -+ $termios->setlflag( $c_lflag | &POSIX::ECHO ); -+ -+=item setoflag -+ -+Set the c_oflag field of a termios object. -+ -+ $termios->setoflag( $c_oflag | &POSIX::OPOST ); -+ -+=item setospeed -+ -+Set the output baud rate. -+ -+ $termios->setospeed( &POSIX::B9600 ); -+ -+Returns C<undef> on failure. -+ -+=item Baud rate values -+ -+B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110 -+ -+=item Terminal interface values -+ -+TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF -+ -+=item c_cc field values -+ -+VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS -+ -+=item c_cflag field values -+ -+CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD -+ -+=item c_iflag field values -+ -+BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK -+ -+=item c_lflag field values -+ -+ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP -+ -+=item c_oflag field values -+ -+OPOST -+ -+=back -+ -+=head1 PATHNAME CONSTANTS -+ -+=over 8 -+ -+=item Constants -+ -+_PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE -+ -+=back -+ -+=head1 POSIX CONSTANTS -+ -+=over 8 -+ -+=item Constants -+ -+_POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION -+ -+=back -+ -+=head1 SYSTEM CONFIGURATION -+ -+=over 8 -+ -+=item Constants -+ -+_SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION -+ -+=back -+ -+=head1 ERRNO -+ -+=over 8 -+ -+=item Constants -+ -+E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF -+EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ -+EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR -+EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG -+ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC -+ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR -+ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE -+EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS -+ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS -+ETXTBSY EUSERS EWOULDBLOCK EXDEV -+ -+=back -+ -+=head1 FCNTL -+ -+=over 8 -+ -+=item Constants -+ -+FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY -+ -+=back -+ -+=head1 FLOAT -+ -+=over 8 -+ -+=item Constants -+ -+DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP -+ -+=back -+ -+=head1 LIMITS -+ -+=over 8 -+ -+=item Constants -+ -+ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX -+ -+=back -+ -+=head1 LOCALE -+ -+=over 8 -+ -+=item Constants -+ -+LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME -+ -+=back -+ -+=head1 MATH -+ -+=over 8 -+ -+=item Constants -+ -+HUGE_VAL -+ -+=back -+ -+=head1 SIGNAL -+ -+=over 8 -+ -+=item Constants -+ -+SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART -+SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT -+SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU -+SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK -+SIG_UNBLOCK -+ -+=back -+ -+=head1 STAT -+ -+=over 8 -+ -+=item Constants -+ -+S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR -+ -+=item Macros -+ -+S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG -+ -+=back -+ -+=head1 STDLIB -+ -+=over 8 -+ -+=item Constants -+ -+EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX -+ -+=back -+ -+=head1 STDIO -+ -+=over 8 -+ -+=item Constants -+ -+BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX -+ -+=back -+ -+=head1 TIME -+ -+=over 8 -+ -+=item Constants -+ -+CLK_TCK CLOCKS_PER_SEC -+ -+=back -+ -+=head1 UNISTD -+ -+=over 8 -+ -+=item Constants -+ -+R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK -+ -+=back -+ -+=head1 WAIT -+ -+=over 8 -+ -+=item Constants -+ -+WNOHANG WUNTRACED -+ -+=over 16 -+ -+=item WNOHANG -+ -+Do not suspend the calling process until a child process -+changes state but instead return immediately. -+ -+=item WUNTRACED -+ -+Catch stopped child processes. -+ -+=back -+ -+=item Macros -+ -+WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG -+ -+=over 16 -+ -+=item WIFEXITED -+ -+WIFEXITED($?) returns true if the child process exited normally -+(C<exit()> or by falling off the end of C<main()>) -+ -+=item WEXITSTATUS -+ -+WEXITSTATUS($?) returns the normal exit status of the child process -+(only meaningful if WIFEXITED($?) is true) -+ -+=item WIFSIGNALED -+ -+WIFSIGNALED($?) returns true if the child process terminated because -+of a signal -+ -+=item WTERMSIG -+ -+WTERMSIG($?) returns the signal the child process terminated for -+(only meaningful if WIFSIGNALED($?) is true) -+ -+=item WIFSTOPPED -+ -+WIFSTOPPED($?) returns true if the child process is currently stopped -+(can happen only if you specified the WUNTRACED flag to waitpid()) -+ -+=item WSTOPSIG -+ -+WSTOPSIG($?) returns the signal the child process was stopped for -+(only meaningful if WIFSTOPPED($?) is true) -+ -+=back -+ -+=back -+ |