POSIX

POSIX(3)               Perl Programmers Reference Guide               POSIX(3)



NAME
       POSIX - Perl interface to IEEE Std 1003.1

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


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.  Things which are #defines in C, like EINTR or
       O_NDELAY, are automatically exported into your namespace.  All
       functions are only exported if you ask for them explicitly.  Most
       likely people will prefer to use the fully-qualified function names.

       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 the perlfunc manpage 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.

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.

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.

FUNCTIONS
       _exit   This is identical to the C function _exit().

       abort   This is identical to the C function abort().

       abs     This is identical to Perl's builtin abs() function.

       access  Determines the accessibility of a file.

                       if( POSIX::access( "/", &POSIX::R_OK ) ){
                               print "have read permission\n";
                       }

               Returns undef on failure.

       acos    This is identical to the C function acos().

       alarm   This is identical to Perl's builtin alarm() function.

       asctime This is identical to the C function asctime().

       asin    This is identical to the C function asin().

       assert  Unimplemented.

       atan    This is identical to the C function atan().

       atan2   This is identical to Perl's builtin atan2() function.

       atexit  atexit() is C-specific: use END {} instead.

       atof    atof() is C-specific.

       atoi    atoi() is C-specific.

       atol    atol() is C-specific.

       bsearch bsearch() not supplied.

       calloc  calloc() is C-specific.

       ceil    This is identical to the C function ceil().

       chdir   This is identical to Perl's builtin chdir() function.

       chmod   This is identical to Perl's builtin chmod() function.

       chown   This is identical to Perl's builtin chown() function.

       clearerr
               Use method IO::Handle::clearerr() instead.

       clock   This is identical to the C function clock().

       close   Close the file.  This uses file descriptors such as those
               obtained by calling POSIX::open.

                       $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
                       POSIX::close( $fd );

               Returns undef on failure.

       closedir
               This is identical to Perl's builtin closedir() function.

       cos     This is identical to Perl's builtin cos() function.

       cosh    This is identical to the C function cosh().

       creat   Create a new file.  This returns a file descriptor like the
               ones returned by POSIX::open.  Use POSIX::close to close the
               file.

                       $fd = POSIX::creat( "foo", 0611 );
                       POSIX::close( $fd );


       ctermid Generates the path name for the controlling terminal.

                       $path = POSIX::ctermid();


       ctime   This is identical to the C function ctime().

       cuserid Get the character login name of the user.

                       $name = POSIX::cuserid();


       difftime
               This is identical to the C function difftime().

       div     div() is C-specific.

       dup     This is similar to the C function dup().

               This uses file descriptors such as those obtained by calling
               POSIX::open.

               Returns undef on failure.

       dup2    This is similar to the C function dup2().

               This uses file descriptors such as those obtained by calling
               POSIX::open.

               Returns undef on failure.

       errno   Returns the value of errno.

                       $errno = POSIX::errno();


       execl   execl() is C-specific.

       execle  execle() is C-specific.

       execlp  execlp() is C-specific.

       execv   execv() is C-specific.

       execve  execve() is C-specific.

       execvp  execvp() is C-specific.

       exit    This is identical to Perl's builtin exit() function.

       exp     This is identical to Perl's builtin exp() function.

       fabs    This is identical to Perl's builtin abs() function.

       fclose  Use method IO::Handle::close() instead.

       fcntl   This is identical to Perl's builtin fcntl() function.

       fdopen  Use method IO::Handle::new_from_fd() instead.

       feof    Use method IO::Handle::eof() instead.

       ferror  Use method IO::Handle::error() instead.

       fflush  Use method IO::Handle::flush() instead.

       fgetc   Use method IO::Handle::getc() instead.

       fgetpos Use method IO::Seekable::getpos() instead.

       fgets   Use method IO::Handle::gets() instead.

       fileno  Use method IO::Handle::fileno() instead.

       floor   This is identical to the C function floor().

       fmod    This is identical to the C function fmod().

       fopen   Use method IO::File::open() instead.

       fork    This is identical to Perl's builtin fork() function.

       fpathconf
               Retrieves the value of a configurable limit on a file or
               directory.  This uses file descriptors such as those obtained
               by calling POSIX::open.

               The following will determine the maximum length of the longest
               allowable pathname on the filesystem which holds /tmp/foo.

                       $fd = POSIX::open( "/tmp/foo", &POSIX::O_RDONLY );
                       $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX );

               Returns undef on failure.

       fprintf fprintf() is C-specific--use printf instead.

       fputc   fputc() is C-specific--use print instead.

       fputs   fputs() is C-specific--use print instead.

       fread   fread() is C-specific--use read instead.

       free    free() is C-specific.

       freopen freopen() is C-specific--use open instead.

       frexp   Return the mantissa and exponent of a floating-point number.

                       ($mantissa, $exponent) = POSIX::frexp( 3.14 );


       fscanf  fscanf() is C-specific--use <> and regular expressions instead.

       fseek   Use method IO::Seekable::seek() instead.

       fsetpos Use method IO::Seekable::setpos() instead.

       fstat   Get file status.  This uses file descriptors such as those
               obtained by calling POSIX::open.  The data returned is
               identical to the data from Perl's builtin stat function.

                       $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
                       @stats = POSIX::fstat( $fd );


       ftell   Use method IO::Seekable::tell() instead.

       fwrite  fwrite() is C-specific--use print instead.

       getc    This is identical to Perl's builtin getc() function.

       getchar Returns one character from STDIN.

       getcwd  Returns the name of the current working directory.

       getegid Returns the effective group id.

       getenv  Returns the value of the specified enironment variable.

       geteuid Returns the effective user id.

       getgid  Returns the user's real group id.

       getgrgid
               This is identical to Perl's builtin getgrgid() function.

       getgrnam
               This is identical to Perl's builtin getgrnam() function.

       getgroups
               Returns the ids of the user's supplementary groups.

       getlogin
               This is identical to Perl's builtin getlogin() function.

       getpgrp This is identical to Perl's builtin getpgrp() function.

       getpid  Returns the process's id.

       getppid This is identical to Perl's builtin getppid() function.

       getpwnam
               This is identical to Perl's builtin getpwnam() function.

       getpwuid
               This is identical to Perl's builtin getpwuid() function.

       gets    Returns one line from STDIN.

       getuid  Returns the user's id.

       gmtime  This is identical to Perl's builtin gmtime() function.

       isalnum This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       isalpha This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       isatty  Returns a boolean indicating whether the specified filehandle
               is connected to a tty.

       iscntrl This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       isdigit This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       isgraph This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       islower This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       isprint This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       ispunct This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       isspace This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       isupper This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       isxdigit
               This is identical to the C function, except that it can apply
               to a single character or to a whole string.

       kill    This is identical to Perl's builtin kill() function.

       labs    labs() is C-specific, use abs instead.

       ldexp   This is identical to the C function ldexp().

       ldiv    ldiv() is C-specific, use / and int instead.

       link    This is identical to Perl's builtin link() function.

       localeconv
               Get numeric formatting information.  Returns a reference to a
               hash containing the current locale formatting values.

               The database for the 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";


       localtime
               This is identical to Perl's builtin localtime() function.

       log     This is identical to Perl's builtin log() function.

       log10   This is identical to the C function log10().

       longjmp longjmp() is C-specific: use die instead.

       lseek   Move the file's read/write position.  This uses file
               descriptors such as those obtained by calling POSIX::open.

                       $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
                       $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );

               Returns undef on failure.

       malloc  malloc() is C-specific.

       mblen   This is identical to the C function mblen().

       mbstowcs
               This is identical to the C function mbstowcs().

       mbtowc  This is identical to the C function mbtowc().

       memchr  memchr() is C-specific, use index() instead.

       memcmp  memcmp() is C-specific, use eq instead.

       memcpy  memcpy() is C-specific, use = instead.

       memmove memmove() is C-specific, use = instead.

       memset  memset() is C-specific, use x instead.

       mkdir   This is identical to Perl's builtin mkdir() function.

       mkfifo  This is similar to the C function mkfifo().

               Returns undef on failure.

       mktime  Convert date/time info to a calendar time.

               Synopsis:

                       mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)

               The month (mon), weekday (wday), and yearday (yday) begin at
               zero.  I.e. January is 0, not 1; Sunday is 0, not 1; January
               1st is 0, not 1.  The year (year) is given in years since 1900.
               I.e. The year 1995 is 95; the year 2001 is 101.  Consult your
               system's 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 undef on failure.

       modf    Return the integral and fractional parts of a floating-point
               number.

                       ($fractional, $integral) = POSIX::modf( 3.14 );


       nice    This is similar to the C function nice().

               Returns undef on failure.

       offsetof
               offsetof() is C-specific.

       open    Open a file for reading for writing.  This returns file
               descriptors, not Perl filehandles.  Use 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 undef on failure.

       opendir Open a directory for reading.

                       $dir = POSIX::opendir( "/tmp" );
                       @files = POSIX::readdir( $dir );
                       POSIX::closedir( $dir );

               Returns undef on failure.

       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 /tmp.

                       $path_max = POSIX::pathconf( "/tmp", &POSIX::_PC_PATH_MAX );

               Returns undef on failure.

       pause   This is similar to the C function pause().

               Returns undef on failure.

       perror  This is identical to the C function perror().

       pipe    Create an interprocess channel.  This returns file descriptors
               like those returned by POSIX::open.

                       ($fd0, $fd1) = POSIX::pipe();
                       POSIX::write( $fd0, "hello", 5 );
                       POSIX::read( $fd1, $buf, 5 );


       pow     Computes $x raised to the power $exponent.

                       $ret = POSIX::pow( $x, $exponent );


       printf  Prints the specified arguments to STDOUT.

       putc    putc() is C-specific--use print instead.

       putchar putchar() is C-specific--use print instead.

       puts    puts() is C-specific--use print instead.

       qsort   qsort() is C-specific, use sort instead.

       raise   Sends the specified signal to the current process.

       rand    rand() is non-portable, use Perl's rand instead.

       read    Read from a file.  This uses file descriptors such as those
               obtained by calling POSIX::open.  If the buffer $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 undef on failure.

       readdir This is identical to Perl's builtin readdir() function.

       realloc realloc() is C-specific.

       remove  This is identical to Perl's builtin unlink() function.

       rename  This is identical to Perl's builtin rename() function.

       rewind  Seeks to the beginning of the file.

       rewinddir
               This is identical to Perl's builtin rewinddir() function.

       rmdir   This is identical to Perl's builtin rmdir() function.

       scanf   scanf() is C-specific--use <> and regular expressions instead.

       setgid  Sets the real group id for this process.

       setjmp  setjmp() is C-specific: use eval {} instead.

       setlocale
               Modifies and queries program's locale.

               The following will set the traditional UNIX system locale
               behavior (the second argument "C").

                       $loc = POSIX::setlocale( &POSIX::LC_ALL, "C" );

               The following will query (the missing second argument) the
               current LC_CTYPE category.

                       $loc = POSIX::setlocale( &POSIX::LC_CTYPE);

               The following will set the LC_CTYPE behaviour according to the
               locale environment variables (the second argument "").  Please
               see your systems the setlocale(3) manpage documentation for the
               locale environment variables' meaning or consult the perllocale
               manpage.

                       $loc = POSIX::setlocale( &POSIX::LC_CTYPE, "");

               The following will set the LC_COLLATE behaviour to Argentinian
               Spanish. NOTE: The naming and availability of locales depends
               on your operating system. Please consult the perllocale manpage
               for how to find out which locales are available in your system.

                       $loc = POSIX::setlocale( &POSIX::LC_ALL, "es_AR.ISO8859-1" );


       setpgid This is similar to the C function setpgid().

               Returns undef on failure.

       setsid  This is identical to the C function setsid().

       setuid  Sets the real user id for this process.

       sigaction
               Detailed signal management.  This uses POSIX::SigAction objects
               for the action and oldaction arguments.  Consult your system's
               sigaction manpage for details.

               Synopsis:

                       sigaction(sig, action, oldaction = 0)

               Returns undef on failure.

       siglongjmp
               siglongjmp() is C-specific: use die instead.

       sigpending
               Examine signals that are blocked and pending.  This uses
               POSIX::SigSet objects for the sigset argument.  Consult your
               system's sigpending manpage for details.

               Synopsis:

                       sigpending(sigset)

               Returns undef on failure.

       sigprocmask
               Change and/or examine calling process's signal mask.  This uses
               POSIX::SigSet objects for the sigset and oldsigset arguments.
               Consult your system's sigprocmask manpage for details.

               Synopsis:

                       sigprocmask(how, sigset, oldsigset = 0)

               Returns undef on failure.

       sigsetjmp
               sigsetjmp() is C-specific: use eval {} instead.

       sigsuspend
               Install a signal mask and suspend process until signal arrives.
               This uses POSIX::SigSet objects for the signal_mask argument.
               Consult your system's sigsuspend manpage for details.

               Synopsis:

                       sigsuspend(signal_mask)

               Returns undef on failure.

       sin     This is identical to Perl's builtin sin() function.

       sinh    This is identical to the C function sinh().

       sleep   This is identical to Perl's builtin sleep() function.

       sprintf This is identical to Perl's builtin sprintf() function.

       sqrt    This is identical to Perl's builtin sqrt() function.

       srand   srand().

       sscanf  sscanf() is C-specific--use regular expressions instead.

       stat    This is identical to Perl's builtin stat() function.

       strcat  strcat() is C-specific, use .= instead.

       strchr  strchr() is C-specific, use index() instead.

       strcmp  strcmp() is C-specific, use eq instead.

       strcoll This is identical to the C function strcoll().

       strcpy  strcpy() is C-specific, use = instead.

       strcspn strcspn() is C-specific, use regular expressions instead.

       strerror
               Returns the error string for the specified errno.

       strftime
               Convert date and time information to string.  Returns the
               string.

               Synopsis:

                       strftime(fmt, sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)

               The month (mon), weekday (wday), and yearday (yday) begin at
               zero.  I.e. January is 0, not 1; Sunday is 0, not 1; January
               1st is 0, not 1.  The year (year) is given in years since 1900.
               I.e. The year 1995 is 95; the year 2001 is 101.  Consult your
               system's strftime() manpage for details about these and the
               other arguments.

               The string for Tuesday, December 12, 1995.

                       $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
                       print "$str\n";


       strlen  strlen() is C-specific, use length instead.

       strncat strncat() is C-specific, use .= instead.

       strncmp strncmp() is C-specific, use eq instead.

       strncpy strncpy() is C-specific, use = instead.

       stroul  stroul() is C-specific.

       strpbrk strpbrk() is C-specific.

       strrchr strrchr() is C-specific, use rindex() instead.

       strspn  strspn() is C-specific.

       strstr  This is identical to Perl's builtin index() function.

       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 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.

       strtok  strtok() is C-specific.

       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 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.

       strtoul String to unsigned (long) integer translation.  strtoul is
               identical to strtol except that strtoul only parses unsigned
               integers.  See strtol for details.

               Note: Some vendors supply strtod and strtol but not strtoul.
               Other vendors that do suply strtoul parse "-1" as a valid
               value.

       strxfrm String transformation.  Returns the transformed string.

                       $dst = POSIX::strxfrm( $src );


       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 undef on failure.

       system  This is identical to Perl's builtin system() function.

       tan     This is identical to the C function tan().

       tanh    This is identical to the C function tanh().

       tcdrain This is similar to the C function tcdrain().

               Returns undef on failure.

       tcflow  This is similar to the C function tcflow().

               Returns undef on failure.

       tcflush This is similar to the C function tcflush().

               Returns undef on failure.

       tcgetpgrp
               This is identical to the C function tcgetpgrp().

       tcsendbreak
               This is similar to the C function tcsendbreak().

               Returns undef on failure.

       tcsetpgrp
               This is similar to the C function tcsetpgrp().

               Returns undef on failure.

       time    This is identical to Perl's builtin time() function.

       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 times() function returns four values,
               measured in seconds.

       tmpfile Use method IO::File::new_tmpfile() instead.

       tmpnam  Returns a name for a temporary file.

                       $tmpfile = POSIX::tmpnam();


       tolower This is identical to Perl's builtin lc() function.

       toupper This is identical to Perl's builtin uc() function.

       ttyname This is identical to the C function ttyname().

       tzname  Retrieves the time conversion information from the tzname
               variable.

                       POSIX::tzset();
                       ($std, $dst) = POSIX::tzname();


       tzset   This is identical to the C function tzset().

       umask   This is identical to Perl's builtin umask() function.

       uname   Get name of current operating system.

                       ($sysname, $nodename, $release, $version, $machine ) = POSIX::uname();


       ungetc  Use method IO::Handle::ungetc() instead.

       unlink  This is identical to Perl's builtin unlink() function.

       utime   This is identical to Perl's builtin utime() function.

       vfprintf
               vfprintf() is C-specific.

       vprintf vprintf() is C-specific.

       vsprintf
               vsprintf() is C-specific.

       wait    This is identical to Perl's builtin wait() function.

       waitpid Wait for a child process to change state.  This is identical to
               Perl's builtin waitpid() function.

                       $pid = POSIX::waitpid( -1, &POSIX::WNOHANG );
                       print "status = ", ($? / 256), "\n";


       wcstombs
               This is identical to the C function wcstombs().

       wctomb  This is identical to the C function wctomb().

       write   Write to a file.  This uses file descriptors such as those
               obtained by calling POSIX::open.

                       $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
                       $buf = "hello";
                       $bytes = POSIX::write( $b, $buf, 5 );

               Returns undef on failure.

CLASSES
       POSIX::SigAction

       new     Creates a new POSIX::SigAction object which corresponds to the
               C struct sigaction.  This object will be destroyed
               automatically when it is no longer needed.  The first parameter
               is the fully-qualified name of a sub which is a signal-handler.
               The second parameter is a POSIX::SigSet object, it defaults to
               the empty set.  The third parameter contains the sa_flags, it
               defaults to 0.

                       $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
                       $sigaction = POSIX::SigAction->new( 'main::handler', $sigset, &POSIX::SA_NOCLDSTOP );

               This POSIX::SigAction object should be used with the
               POSIX::sigaction() function.

       POSIX::SigSet

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


       addset  Add a signal to a SigSet object.

                       $sigset->addset( &POSIX::SIGUSR2 );

               Returns undef on failure.

       delset  Remove a signal from the SigSet object.

                       $sigset->delset( &POSIX::SIGUSR2 );

               Returns undef on failure.

       emptyset
               Initialize the SigSet object to be empty.

                       $sigset->emptyset();

               Returns undef on failure.

       fillset Initialize the SigSet object to include all signals.

                       $sigset->fillset();

               Returns undef on failure.

       ismember
               Tests the SigSet object to see if it contains a specific
               signal.

                       if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
                               print "contains SIGUSR1\n";
                       }


       POSIX::Termios

       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;


       getattr Get terminal control attributes.

               Obtain the attributes for stdin.

                       $termios->getattr()

               Obtain the attributes for stdout.

                       $termios->getattr( 1 )

               Returns undef on failure.

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


       getcflag
               Retrieve the c_cflag field of a termios object.

                       $c_cflag = $termios->getcflag;


       getiflag
               Retrieve the c_iflag field of a termios object.

                       $c_iflag = $termios->getiflag;


       getispeed
               Retrieve the input baud rate.

                       $ispeed = $termios->getispeed;


       getlflag
               Retrieve the c_lflag field of a termios object.

                       $c_lflag = $termios->getlflag;


       getoflag
               Retrieve the c_oflag field of a termios object.

                       $c_oflag = $termios->getoflag;


       getospeed
               Retrieve the output baud rate.

                       $ospeed = $termios->getospeed;


       setattr Set terminal control attributes.

               Set attributes immediately for stdout.

                       $termios->setattr( 1, &POSIX::TCSANOW );

               Returns undef on failure.

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


       setcflag
               Set the c_cflag field of a termios object.

                       $termios->setcflag( $c_cflag ⎪ &POSIX::CLOCAL );


       setiflag
               Set the c_iflag field of a termios object.

                       $termios->setiflag( $c_iflag ⎪ &POSIX::BRKINT );


       setispeed
               Set the input baud rate.

                       $termios->setispeed( &POSIX::B9600 );

               Returns undef on failure.

       setlflag
               Set the c_lflag field of a termios object.

                       $termios->setlflag( $c_lflag ⎪ &POSIX::ECHO );


       setoflag
               Set the c_oflag field of a termios object.

                       $termios->setoflag( $c_oflag ⎪ &POSIX::OPOST );


       setospeed
               Set the output baud rate.

                       $termios->setospeed( &POSIX::B9600 );

               Returns undef on failure.

       Baud rate values
               B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600
               B4800 B50 B2400 B110

       Terminal interface values
               TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH
               TCSAFLUSH TCIOFF TCOOFF

       c_cc field values
               VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN
               VTIME NCCS

       c_cflag field values
               CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD

       c_iflag field values
               BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON
               PARMRK

       c_lflag field values
               ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP

       c_oflag field values
               OPOST

PATHNAME CONSTANTS
       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

POSIX CONSTANTS
       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

SYSTEM CONFIGURATION
       Constants
               _SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL
               _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_SAVED_IDS _SC_STREAM_MAX
               _SC_TZNAME_MAX _SC_VERSION

ERRNO
       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

FCNTL
       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

FLOAT
       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

LIMITS
       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

LOCALE
       Constants
               LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME

MATH
       Constants
               HUGE_VAL

SIGNAL
       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

STAT
       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

       Macros  S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG

STDLIB
       Constants
               EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX

STDIO
       Constants
               BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX

TIME
       Constants
               CLK_TCK CLOCKS_PER_SEC

UNISTD
       Constants
               R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO
               STRERR_FILENO W_OK X_OK

WAIT
       Constants
               WNOHANG WUNTRACED

       Macros  WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG

CREATION
       This document generated by ./mkposixman.PL version 19960129.




















































































































































































































































































































3rd Berkeley Distribution    perl 5.005, patch 02                     POSIX(3)