3 POSIX - Perl interface to IEEE Std 1003.1
9 use POSIX qw(:errno_h :fcntl_h);
11 printf "EINTR is %d\n", EINTR;
13 $sess_id = POSIX::setsid();
15 $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
16 # note: that's a filedescriptor, *NOT* a filehandle
20 The POSIX module permits you to access all (or nearly all) the standard
21 POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish
22 interfaces. Things which are C<#defines> in C, like EINTR or O_NDELAY, are
23 automatically exported into your namespace. All functions are only exported
24 if you ask for them explicitly. Most likely people will prefer to use the
25 fully-qualified function names.
27 This document gives a condensed list of the features available in the POSIX
28 module. Consult your operating system's manpages for general information on
29 most features. Consult L<perlfunc> for functions which are noted as being
30 identical to Perl's builtin functions.
32 The first section describes POSIX functions from the 1003.1 specification.
33 The second section describes some classes for signal objects, TTY objects,
34 and other miscellaneous objects. The remaining sections list various
35 constants and macros in an organization which roughly follows IEEE Std
40 The POSIX module is probably the most complex Perl module supplied with
41 the standard distribution. It incorporates autoloading, namespace games,
42 and dynamic loading of code that's in Perl, C, or both. It's a great
47 A few functions are not implemented because they are C specific. If you
48 attempt to call these, they will print a message telling you that they
49 aren't implemented, and suggest using the Perl equivalent should one
50 exist. For example, trying to access the setjmp() call will elicit the
51 message "setjmp() is C-specific: use eval {} instead".
53 Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
54 are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
55 For example, one vendor may not define EDEADLK, or the semantics of the
56 errno values set by open(2) might not be quite right. Perl does not
57 attempt to verify POSIX compliance. That means you can currently
58 successfully say "use POSIX", and then later in your program you find
59 that your vendor has been lax and there's no usable ICANON macro after
60 all. This could be construed to be a bug.
68 This is identical to the C function C<_exit()>. It exits the program
69 immediately which means among other things buffered I/O is B<not> flushed.
73 This is identical to the C function C<abort()>. It terminates the
74 process with a C<SIGABRT> signal unless caught by a signal handler or
75 if the handler does not return normally (it e.g. does a C<longjmp>).
79 This is identical to Perl's builtin C<abs()> function, returning
80 the absolute value of its numerical argument.
84 Determines the accessibility of a file.
86 if( POSIX::access( "/", &POSIX::R_OK ) ){
87 print "have read permission\n";
90 Returns C<undef> on failure. Note: do not use C<access()> for
91 security purposes. Between the C<access()> call and the operation
92 you are preparing for the permissions might change: a classic
97 This is identical to the C function C<acos()>, returning
98 the arcus cosine of its numerical argument.
102 This is identical to Perl's builtin C<alarm()> function,
103 either for arming or disarming the C<SIGARLM> timer.
107 This is identical to the C function C<asctime()>. It returns
110 "Fri Jun 2 18:22:13 2000\n\0"
112 and it is called thusly
114 $asctime = asctime($sec, $min, $hour, $mday, $mon, $year,
115 $wday, $yday, $isdst);
117 The C<$mon> is zero-based: January equals C<0>. The C<$year> is
118 1900-based: 2001 equals C<101>. The C<$wday>, C<$yday>, and C<$isdst>
119 default to zero (and the first two are usually ignored anyway).
123 This is identical to the C function C<asin()>, returning
124 the arcus sine of its numerical argument.
128 Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
129 to achieve similar things.
133 This is identical to the C function C<atan()>, returning the
134 arcus tangent of its numerical argument.
138 This is identical to Perl's builtin C<atan2()> function, returning
139 the arcus tangent defined by its two numerical arguments, the I<y>
140 coordinate and the I<x> coordinate.
144 atexit() is C-specific: use C<END {}> instead, see L<perlsub>.
148 atof() is C-specific. Perl converts strings to numbers transparently.
149 If you need to force a scalar to a number, add a zero to it.
153 atoi() is C-specific. Perl converts strings to numbers transparently.
154 If you need to force a scalar to a number, add a zero to it.
155 If you need to have just the integer part, see L<perlfunc/int>.
159 atol() is C-specific. Perl converts strings to numbers transparently.
160 If you need to force a scalar to a number, add a zero to it.
161 If you need to have just the integer part, see L<perlfunc/int>.
165 bsearch() not supplied. For doing binary search on wordlists,
170 calloc() is C-specific. Perl does memory management transparently.
174 This is identical to the C function C<ceil()>, returning the smallest
175 integer value greater than or equal to the given numerical argument.
179 This is identical to Perl's builtin C<chdir()> function, allowing
180 one to change the working (default) directory, see L<perlfunc/chdir>.
184 This is identical to Perl's builtin C<chmod()> function, allowing
185 one to change file and directory permissions, see L<perlfunc/chmod>.
189 This is identical to Perl's builtin C<chown()> function, allowing one
190 to change file and directory owners and groups, see L<perlfunc/chown>.
194 Use the method L<IO::Handle::clearerr()> instead, to reset the error
195 state (if any) and EOF state (if any) of the given stream.
199 This is identical to the C function C<clock()>, returning the
200 amount of spent processor time in microseconds.
204 Close the file. This uses file descriptors such as those obtained by calling
207 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
210 Returns C<undef> on failure.
212 See also L<perlfunc/close>.
216 This is identical to Perl's builtin C<closedir()> function for closing
217 a directory handle, see L<perlfunc/closedir>.
221 This is identical to Perl's builtin C<cos()> function, for returning
222 the cosine of its numerical argument, see L<perlfunc/cos>.
226 This is identical to the C function C<cosh()>, for returning
227 the hyperbolic cosine of its numeric argument.
231 Create a new file. This returns a file descriptor like the ones returned by
232 C<POSIX::open>. Use C<POSIX::close> to close the file.
234 $fd = POSIX::creat( "foo", 0611 );
237 See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
241 Generates the path name for the controlling terminal.
243 $path = POSIX::ctermid();
247 This is identical to the C function C<ctime()>.
251 Get the character login name of the user.
253 $name = POSIX::cuserid();
257 This is identical to the C function C<difftime()>.
261 div() is C-specific, use L<perlfunc/int> on the usual C</> division and
266 This is similar to the C function C<dup()>.
268 This uses file descriptors such as those obtained by calling
271 Returns C<undef> on failure.
275 This is similar to the C function C<dup2()>.
277 This uses file descriptors such as those obtained by calling
280 Returns C<undef> on failure.
284 Returns the value of errno.
286 $errno = POSIX::errno();
288 This identical to the numerical values of the C<$!>, see L<perlvar>.
292 execl() is C-specific, see L<perlfunc/exec>.
296 execle() is C-specific, see L<perlfunc/exec>.
300 execlp() is C-specific, see L<perlfunc/exec>.
304 execv() is C-specific, see L<perlfunc/exec>.
308 execve() is C-specific, see L<perlfunc/exec>.
312 execvp() is C-specific, see L<perlfunc/exec>.
316 This is identical to Perl's builtin C<exit()> function for exiting the
317 program, see L<perlfunc/exit>.
321 This is identical to Perl's builtin C<exp()> function for
322 returning the exponent (I<e>-based) of the numerical argument,
327 This is identical to Perl's builtin C<abs()> function for returning
328 the absolute value of the numerical argument, see L<perlfunc/abs>.
332 Use method C<IO::Handle::close()> instead.
336 This is identical to Perl's builtin C<fcntl()> function,
337 see L<perlfunc/fcntl>.
341 Use method C<IO::Handle::new_from_fd()> instead.
345 Use method C<IO::Handle::eof()> instead.
349 Use method C<IO::Handle::error()> instead.
353 Use method C<IO::Handle::flush()> instead.
357 Use method C<IO::Handle::getc()> instead.
361 Use method C<IO::Seekable::getpos()> instead.
365 Use method C<IO::Handle::gets()> instead. Similar to <>, also known
366 as L<perlfunc/readline>.
370 Use method C<IO::Handle::fileno()> instead.
374 This is identical to the C function C<floor()>, returning the largest
375 integer value less than or equal to the numerical argument.
379 This is identical to the C function C<fmod()>.
383 It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
384 The C<$r> has the same sign as C<$x> and magnitude (absolute value)
385 less than the magnitude of C<$y>.
389 Use method C<IO::File::open()> instead.
393 This is identical to Perl's builtin C<fork()> function.
397 Retrieves the value of a configurable limit on a file or directory. This
398 uses file descriptors such as those obtained by calling C<POSIX::open>.
400 The following will determine the maximum length of the longest allowable
401 pathname on the filesystem which holds C</tmp/foo>.
403 $fd = POSIX::open( "/tmp/foo", &POSIX::O_RDONLY );
404 $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX );
406 Returns C<undef> on failure.
410 fprintf() is C-specific, see L<perlfunc/printf> instead.
414 fputc() is C-specific, see L<perlfunc/print> instead.
418 fputs() is C-specific, see L<perlfunc/print> instead.
422 fread() is C-specific, see L<perlfunc/read> instead.
426 free() is C-specific. Perl does memory management transparently.
430 freopen() is C-specific, see L<perlfunc/open> instead.
434 Return the mantissa and exponent of a floating-point number.
436 ($mantissa, $exponent) = POSIX::frexp( 3.14 );
440 fscanf() is C-specific--use <> and regular expressions instead.
444 Use method C<IO::Seekable::seek()> instead.
448 Use method C<IO::Seekable::setpos()> instead.
452 Get file status. This uses file descriptors such as those obtained by
453 calling C<POSIX::open>. The data returned is identical to the data from
454 Perl's builtin C<stat> function.
456 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
457 @stats = POSIX::fstat( $fd );
461 Use method C<IO::Seekable::tell()> instead.
465 fwrite() is C-specific, see L<perlfunc/print> instead.
469 This is identical to Perl's builtin C<getc()> function,
470 see L<perlfunc/getc>.
474 Returns one character from STDIN.
478 Returns the name of the current working directory.
482 Returns the effective group id.
486 Returns the value of the specified enironment variable.
487 The same information is available through the C<%ENV> array.
491 Returns the effective user id.
495 Returns the user's real group id.
499 This is identical to Perl's builtin C<getgrgid()> function,
500 see L<perlfunc/getgrgid>.
504 This is identical to Perl's builtin C<getgrnam()> function,
505 see L<perlfunc/getgrnam>.
509 Returns the ids of the user's supplementary groups.
513 This is identical to Perl's builtin C<getlogin()> function,
514 see L<perlfunc/getlogin>.
518 This is identical to Perl's builtin C<getpgrp()> function,
519 see L<perlfunc/getpgrp>.
523 Returns the process's id.
527 This is identical to Perl's builtin C<getppid()> function,
528 see L<perlfunc/getppid>.
532 This is identical to Perl's builtin C<getpwnam()> function,
533 see L<perlfunc/getpwnam>.
537 This is identical to Perl's builtin C<getpwuid()> function,
538 see L<perlfunc/getpwuid>.
542 Returns one line from C<STDIN>, similar to <>, also known
543 as the C<readline()> functions, see L<perlfunc/readline>.
547 Returns the user's id.
551 This is identical to Perl's builtin C<gmtime()> function,
552 see L<perlfunc/gmtime>.
556 This is identical to the C function, except that it can apply to a single
557 character or to a whole string. Consider using regular expressions and the
558 C</[[:isalnum:]]/> construct instead.
562 This is identical to the C function, except that it can apply to a single
563 character or to a whole string. Consider using regular expressions and the
564 C</[[:isalpha:]]/> construct instead.
568 Returns a boolean indicating whether the specified filehandle is connected
569 to a tty. Similar to the C<-t> operator, see L<perlfunc/-X>.
573 This is identical to the C function, except that it can apply to a single
574 character or to a whole string. Consider using regular expressions and the
575 C</[[:iscntrl:]]/> construct instead.
579 This is identical to the C function, except that it can apply to a single
580 character or to a whole string. Consider using regular expressions and the
581 C</[[:isdigit:]]/> construct instead.
585 This is identical to the C function, except that it can apply to a single
586 character or to a whole string. Consider using regular expressions and the
587 C</[[:isgraph:]]/> construct instead.
591 This is identical to the C function, except that it can apply to a single
592 character or to a whole string. Consider using regular expressions and the
593 C</[[:islower:]]/> construct instead.
597 This is identical to the C function, except that it can apply to a single
598 character or to a whole string. Consider using regular expressions and the
599 C</[[:isprint:]]/> construct instead.
603 This is identical to the C function, except that it can apply to a single
604 character or to a whole string. Consider using regular expressions and the
605 C</[[:ispunct:]]/> construct instead.
609 This is identical to the C function, except that it can apply to a single
610 character or to a whole string. Consider using regular expressions and the
611 C</[[:isspace:]]/> construct instead.
615 This is identical to the C function, except that it can apply to a single
616 character or to a whole string. Consider using regular expressions and the
617 C</[[:isupper:]]/> construct instead.
621 This is identical to the C function, except that it can apply to a single
622 character or to a whole string. Consider using regular expressions and the
623 C</[[:isxdigit:]]/> construct instead.
627 This is identical to Perl's builtin C<kill()> function.
631 labs() is C-specific, see L<perlfunc/abs> instead.
635 This is identical to the C function C<ldexp()>.
639 ldiv() is C-specific, use C</> and C<int()> instead.
643 This is identical to Perl's builtin C<link()> function.
647 Get numeric formatting information. Returns a reference to a hash
648 containing the current locale formatting values.
650 Here is how to query the database for the B<de> (Deutsch or German) locale.
652 $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
653 print "Locale = $loc\n";
654 $lconv = POSIX::localeconv();
655 print "decimal_point = ", $lconv->{decimal_point}, "\n";
656 print "thousands_sep = ", $lconv->{thousands_sep}, "\n";
657 print "grouping = ", $lconv->{grouping}, "\n";
658 print "int_curr_symbol = ", $lconv->{int_curr_symbol}, "\n";
659 print "currency_symbol = ", $lconv->{currency_symbol}, "\n";
660 print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n";
661 print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n";
662 print "mon_grouping = ", $lconv->{mon_grouping}, "\n";
663 print "positive_sign = ", $lconv->{positive_sign}, "\n";
664 print "negative_sign = ", $lconv->{negative_sign}, "\n";
665 print "int_frac_digits = ", $lconv->{int_frac_digits}, "\n";
666 print "frac_digits = ", $lconv->{frac_digits}, "\n";
667 print "p_cs_precedes = ", $lconv->{p_cs_precedes}, "\n";
668 print "p_sep_by_space = ", $lconv->{p_sep_by_space}, "\n";
669 print "n_cs_precedes = ", $lconv->{n_cs_precedes}, "\n";
670 print "n_sep_by_space = ", $lconv->{n_sep_by_space}, "\n";
671 print "p_sign_posn = ", $lconv->{p_sign_posn}, "\n";
672 print "n_sign_posn = ", $lconv->{n_sign_posn}, "\n";
676 This is identical to Perl's builtin C<localtime()> function.
680 This is identical to Perl's builtin C<log()> function,
681 returning the natural (I<e>-based) logarithm of the numerical argument,
686 This is identical to the C function C<log10()>,
687 returning the 10-base logarithm of the numerical argument.
690 sub log10 { log($_[0]) / log(10) }
694 sub log10 { log($_[0]) / 2.30258509299405 }
698 sub log10 { log($_[0]) * 0.434294481903252 }
702 longjmp() is C-specific: use L<perlfunc/die> instead.
706 Move the file's read/write position. This uses file descriptors such as
707 those obtained by calling C<POSIX::open>.
709 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
710 $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
712 Returns C<undef> on failure.
716 malloc() is C-specific. Perl does memory management transparently.
720 This is identical to the C function C<mblen()>.
724 This is identical to the C function C<mbstowcs()>.
728 This is identical to the C function C<mbtowc()>.
732 memchr() is C-specific, see L<perlfunc/index> instead.
736 memcmp() is C-specific, use C<eq> instead, see L<perlop>.
740 memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
744 memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
748 memset() is C-specific, use C<x> instead, see L<perlop>.
752 This is identical to Perl's builtin C<mkdir()> function
753 for creating directories, see L<perlfunc/mkdir>.
757 This is similar to the C function C<mkfifo()> for creating
760 if (mkfifo($path, $mode)) { ....
762 Returns C<undef> on failure. The C<$mode> is similar to the
763 mode of C<mkdir()>, see L<perlfunc/mkdir>.
767 Convert date/time info to a calendar time.
771 mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
773 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
774 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
775 year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
776 year 2001 is 101. Consult your system's C<mktime()> manpage for details
777 about these and the other arguments.
779 Calendar time for December 12, 1995, at 10:30 am.
781 $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
782 print "Date = ", POSIX::ctime($time_t);
784 Returns C<undef> on failure.
788 Return the integral and fractional parts of a floating-point number.
790 ($fractional, $integral) = POSIX::modf( 3.14 );
794 This is similar to the C function C<nice()>, for changing
795 the scheduling preference of the current process. Positive
796 arguments mean more polite process, negative values more
797 needy process. Normal user processes can only be more polite.
799 Returns C<undef> on failure.
803 offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
807 Open a file for reading for writing. This returns file descriptors, not
808 Perl filehandles. Use C<POSIX::close> to close the file.
810 Open a file read-only with mode 0666.
812 $fd = POSIX::open( "foo" );
814 Open a file for read and write.
816 $fd = POSIX::open( "foo", &POSIX::O_RDWR );
818 Open a file for write, with truncation.
820 $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );
822 Create a new file with mode 0640. Set up the file for writing.
824 $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );
826 Returns C<undef> on failure.
828 See also L<perlfunc/sysopen>.
832 Open a directory for reading.
834 $dir = POSIX::opendir( "/tmp" );
835 @files = POSIX::readdir( $dir );
836 POSIX::closedir( $dir );
838 Returns C<undef> on failure.
842 Retrieves the value of a configurable limit on a file or directory.
844 The following will determine the maximum length of the longest allowable
845 pathname on the filesystem which holds C</tmp>.
847 $path_max = POSIX::pathconf( "/tmp", &POSIX::_PC_PATH_MAX );
849 Returns C<undef> on failure.
853 This is similar to the C function C<pause()>, which suspends
854 the execution of the current process until a signal is received.
856 Returns C<undef> on failure.
860 This is identical to the C function C<perror()>, which outputs to the
861 standard error stream the specified message followed by ": " and the
862 current error string. Use the C<warn()> function and the C<$!>
863 variable instead, see L<perlfunc/warn> and L<perlvar>.
867 Create an interprocess channel. This returns file descriptors like those
868 returned by C<POSIX::open>.
870 ($fd0, $fd1) = POSIX::pipe();
871 POSIX::write( $fd0, "hello", 5 );
872 POSIX::read( $fd1, $buf, 5 );
874 See also L<perlfunc/pipe>.
878 Computes C<$x> raised to the power C<$exponent>.
880 $ret = POSIX::pow( $x, $exponent );
882 You can also use the C<**> operator, see L<perlop>.
886 Formats and prints the specified arguments to STDOUT.
887 See also L<perlfunc/printf>.
891 putc() is C-specific, see L<perlfunc/print> instead.
895 putchar() is C-specific, see L<perlfunc/print> instead.
899 puts() is C-specific, see L<perlfunc/print> instead.
903 qsort() is C-specific, see L<perlfunc/sort> instead.
907 Sends the specified signal to the current process.
908 See also L<perlfunc/kill> and the C<$$> in L<perlvar>.
912 rand() is non-portable, see L<perlfunc/rand> instead.
916 Read from a file. This uses file descriptors such as those obtained by
917 calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
918 read then Perl will extend it to make room for the request.
920 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
921 $bytes = POSIX::read( $fd, $buf, 3 );
923 Returns C<undef> on failure.
925 See also L<perlfunc/sysread>.
929 This is identical to Perl's builtin C<readdir()> function
930 for reading directory entries, see L<perlfunc/readdir>.
934 realloc() is C-specific. Perl does memory management transparently.
938 This is identical to Perl's builtin C<unlink()> function
939 for removing files, see L<perlfunc/unlink>.
943 This is identical to Perl's builtin C<rename()> function
944 for renaming files, see L<perlfunc/rename>.
948 Seeks to the beginning of the file.
952 This is identical to Perl's builtin C<rewinddir()> function for
953 rewinding directory entry streams, see L<perlfunc/rewinddir>.
957 This is identical to Perl's builtin C<rmdir()> function
958 for removing (empty) directories, see L<perlfunc/rmdir>.
962 scanf() is C-specific--use <> and regular expressions instead,
967 Sets the real group id for this process.
971 C<setjmp()> is C-specific: use C<eval {}> instead,
972 see L<perlfunc/eval>.
976 Modifies and queries program's locale. The following examples assume
978 use POSIX qw(setlocale LC_ALL LC_CTYPE);
982 The following will set the traditional UNIX system locale behavior
983 (the second argument C<"C">).
985 $loc = setlocale( LC_ALL, "C" );
987 The following will query the current LC_CTYPE category. (No second
988 argument means 'query'.)
990 $loc = setlocale( LC_CTYPE );
992 The following will set the LC_CTYPE behaviour according to the locale
993 environment variables (the second argument C<"">).
994 Please see your systems L<setlocale(3)> documentation for the locale
995 environment variables' meaning or consult L<perllocale>.
997 $loc = setlocale( LC_CTYPE, "" );
999 The following will set the LC_COLLATE behaviour to Argentinian
1000 Spanish. B<NOTE>: The naming and availability of locales depends on
1001 your operating system. Please consult L<perllocale> for how to find
1002 out which locales are available in your system.
1004 $loc = setlocale( LC_ALL, "es_AR.ISO8859-1" );
1008 This is similar to the C function C<setpgid()>.
1010 Returns C<undef> on failure.
1014 This is identical to the C function C<setsid()>.
1018 Sets the real user id for this process.
1022 Detailed signal management. This uses C<POSIX::SigAction> objects for the
1023 C<action> and C<oldaction> arguments. Consult your system's C<sigaction>
1024 manpage for details.
1028 sigaction(sig, action, oldaction = 0)
1030 Returns C<undef> on failure.
1034 siglongjmp() is C-specific: use L<perlfunc/die> instead.
1038 Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
1039 objects for the C<sigset> argument. Consult your system's C<sigpending>
1040 manpage for details.
1046 Returns C<undef> on failure.
1050 Change and/or examine calling process's signal mask. This uses
1051 C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
1052 Consult your system's C<sigprocmask> manpage for details.
1056 sigprocmask(how, sigset, oldsigset = 0)
1058 Returns C<undef> on failure.
1062 C<sigsetjmp()> is C-specific: use C<eval {}> instead,
1063 see L<perlfunc/eval>.
1067 Install a signal mask and suspend process until signal arrives. This uses
1068 C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
1069 system's C<sigsuspend> manpage for details.
1073 sigsuspend(signal_mask)
1075 Returns C<undef> on failure.
1079 This is identical to Perl's builtin C<sin()> function
1080 for returning the sine of the numerical argument,
1081 see L<perlfunc/sin>.
1085 This is identical to the C function C<sinh()>
1086 for returning the hyperbolic sine of the numerical argument.
1090 This is identical to Perl's builtin C<sleep()> function
1091 for suspending the execution of the current for process
1092 for certain number of seconds, see L<perlfunc/sleep>.
1096 This is similar to Perl's builtin C<sprintf()> function
1097 for returning a string that has the arguments formatted as requested,
1098 see L<perlfunc/sprintf>.
1102 This is identical to Perl's builtin C<sqrt()> function.
1103 for returning the square root of the numerical argument,
1104 see L<perlfunc/sqrt>.
1108 Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
1112 sscanf() is C-specific, use regular expressions instead,
1117 This is identical to Perl's builtin C<stat()> function.
1121 strcat() is C-specific, use C<.=> instead, see L<perlop>.
1125 strchr() is C-specific, see L<perlfunc/index> instead.
1129 strcmp() is C-specific, use C<eq> instead, see L<perlop>.
1133 This is identical to the C function C<strcoll()>
1134 for collating (comparing) strings transformed using
1135 the C<strxfrm()> function. Not really needed since
1136 Perl can do this transparently, see L<perllocale>.
1140 strcpy() is C-specific, use C<=> instead, see L<perlop>.
1144 strcspn() is C-specific, use regular expressions instead.
1148 Returns the error string for the specified errno.
1149 Identical to the string form of the C<$!>, see L<perlvar>.
1153 Convert date and time information to string. Returns the string.
1157 strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
1159 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
1160 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
1161 year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the
1162 year 2001 is 101. Consult your system's C<strftime()> manpage for details
1163 about these and the other arguments.
1164 If you want your code to be portable, your format (C<fmt>) argument
1165 should use only the conversion specifiers defined by the ANSI C
1166 standard. These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
1167 The given arguments are made consistent
1168 as though by calling C<mktime()> before calling your system's
1169 C<strftime()> function, except that the C<isdst> value is not affected.
1171 The string for Tuesday, December 12, 1995.
1173 $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
1178 strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
1182 strncat() is C-specific, use C<.=> instead, see L<perlop>.
1186 strncmp() is C-specific, use C<eq> instead, see L<perlop>.
1190 strncpy() is C-specific, use C<=> instead, see L<perlop>.
1194 strpbrk() is C-specific, use regular expressions instead, see L<perlre>.
1198 strrchr() is C-specific, see L<perlfunc/rindex> instead.
1202 strspn() is C-specific, use regular expressions instead,
1207 This is identical to Perl's builtin C<index()> function,
1208 see L<perlfunc/index>.
1212 String to double translation. Returns the parsed number and the number
1213 of characters in the unparsed portion of the string. Truly
1214 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1215 error, so clear $! before calling strtod. However, non-POSIX systems
1216 may not check for overflow, and therefore will never set $!.
1218 strtod should respect any POSIX I<setlocale()> settings.
1220 To parse a string $str as a floating point number use
1223 ($num, $n_unparsed) = POSIX::strtod($str);
1225 The second returned item and $! can be used to check for valid input:
1227 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1228 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1231 When called in a scalar context strtod returns the parsed number.
1235 strtok() is C-specific, use regular expressions instead, see
1236 L<perlre>, or L<perlfunc/split>.
1240 String to (long) integer translation. Returns the parsed number and
1241 the number of characters in the unparsed portion of the string. Truly
1242 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1243 error, so clear $! before calling strtol. However, non-POSIX systems
1244 may not check for overflow, and therefore will never set $!.
1246 strtol should respect any POSIX I<setlocale()> settings.
1248 To parse a string $str as a number in some base $base use
1251 ($num, $n_unparsed) = POSIX::strtol($str, $base);
1253 The base should be zero or between 2 and 36, inclusive. When the base
1254 is zero or omitted strtol will use the string itself to determine the
1255 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1256 octal; any other leading characters mean decimal. Thus, "1234" is
1257 parsed as a decimal number, "01234" as an octal number, and "0x1234"
1258 as a hexadecimal number.
1260 The second returned item and $! can be used to check for valid input:
1262 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1263 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1266 When called in a scalar context strtol returns the parsed number.
1270 String to unsigned (long) integer translation. strtoul() is identical
1271 to strtol() except that strtoul() only parses unsigned integers. See
1272 L</strtol> for details.
1274 Note: Some vendors supply strtod() and strtol() but not strtoul().
1275 Other vendors that do supply strtoul() parse "-1" as a valid value.
1279 String transformation. Returns the transformed string.
1281 $dst = POSIX::strxfrm( $src );
1283 Used in conjunction with the C<strcoll()> function, see L</strcoll>.
1285 Not really needed since Perl can do this transparently, see
1290 Retrieves values of system configurable variables.
1292 The following will get the machine's clock speed.
1294 $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1296 Returns C<undef> on failure.
1300 This is identical to Perl's builtin C<system()> function, see
1305 This is identical to the C function C<tan()>, returning the
1306 tangent of the numerical argument.
1310 This is identical to the C function C<tanh()>, returning the
1311 hyperbolic tangent of the numerical argument.
1315 This is similar to the C function C<tcdrain()> for draining
1316 the output queue of its argument stream.
1318 Returns C<undef> on failure.
1322 This is similar to the C function C<tcflow()> for controlling
1323 the flow of its argument stream.
1325 Returns C<undef> on failure.
1329 This is similar to the C function C<tcflush()> for flushing
1330 the I/O buffers of its argumeny stream.
1332 Returns C<undef> on failure.
1336 This is identical to the C function C<tcgetpgrp()> for returning the
1337 process group id of the foreground process group of the controlling
1342 This is similar to the C function C<tcsendbreak()> for sending
1343 a break on its argument stream.
1345 Returns C<undef> on failure.
1349 This is similar to the C function C<tcsetpgrp()> for setting the
1350 process group id of the foreground process group of the controlling
1353 Returns C<undef> on failure.
1357 This is identical to Perl's builtin C<time()> function
1358 for returning the number of seconds since the epoch
1359 (whatever it is for the system), see L<perlfunc/time>.
1363 The times() function returns elapsed realtime since some point in the past
1364 (such as system startup), user and system times for this process, and user
1365 and system times used by child processes. All times are returned in clock
1368 ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
1370 Note: Perl's builtin C<times()> function returns four values, measured in
1375 Use method C<IO::File::new_tmpfile()> instead.
1379 Returns a name for a temporary file.
1381 $tmpfile = POSIX::tmpnam();
1383 See also the L<File::Temp> module.
1387 This is identical to the C function, except that it can apply to a single
1388 character or to a whole string. Consider using the C<lc()> function,
1389 see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
1394 This is identical to the C function, except that it can apply to a single
1395 character or to a whole string. Consider using the C<uc()> function,
1396 see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
1401 This is identical to the C function C<ttyname()> for returning the
1402 name of the current terminal.
1406 Retrieves the time conversion information from the C<tzname> variable.
1409 ($std, $dst) = POSIX::tzname();
1413 This is identical to the C function C<tzset()> for setting
1414 the current timezone based on the environment variable C<TZ>,
1415 to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
1420 This is identical to Perl's builtin C<umask()> function
1421 for setting (and querying) the file creation permission mask,
1422 see L<perlfunc/umask>.
1426 Get name of current operating system.
1428 ($sysname, $nodename, $release, $version, $machine ) = POSIX::uname();
1432 Use method C<IO::Handle::ungetc()> instead.
1436 This is identical to Perl's builtin C<unlink()> function
1437 for removing files, see L<perlfunc/unlink>.
1441 This is identical to Perl's builtin C<utime()> function
1442 for changing the time stamps of files and directories,
1443 see L<perlfunc/utime>.
1447 vfprintf() is C-specific, see L<perlfunc/printf> instead.
1451 vprintf() is C-specific, see L<perlfunc/printf> instead.
1455 vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
1459 This is identical to Perl's builtin C<wait()> function,
1460 see L<perlfunc/wait>.
1464 Wait for a child process to change state. This is identical to Perl's
1465 builtin C<waitpid()> function, see L<perlfunc/waitpid>.
1467 $pid = POSIX::waitpid( -1, &POSIX::WNOHANG );
1468 print "status = ", ($? / 256), "\n";
1472 This is identical to the C function C<wcstombs()>.
1476 This is identical to the C function C<wctomb()>.
1480 Write to a file. This uses file descriptors such as those obtained by
1481 calling C<POSIX::open>.
1483 $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
1485 $bytes = POSIX::write( $b, $buf, 5 );
1487 Returns C<undef> on failure.
1489 See also L<perlfunc/syswrite>.
1495 =head2 POSIX::SigAction
1501 Creates a new C<POSIX::SigAction> object which corresponds to the C
1502 C<struct sigaction>. This object will be destroyed automatically when it is
1503 no longer needed. The first parameter is the fully-qualified name of a sub
1504 which is a signal-handler. The second parameter is a C<POSIX::SigSet>
1505 object, it defaults to the empty set. The third parameter contains the
1506 C<sa_flags>, it defaults to 0.
1508 $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
1509 $sigaction = POSIX::SigAction->new( 'main::handler', $sigset, &POSIX::SA_NOCLDSTOP );
1511 This C<POSIX::SigAction> object should be used with the C<POSIX::sigaction()>
1516 =head2 POSIX::SigSet
1522 Create a new SigSet object. This object will be destroyed automatically
1523 when it is no longer needed. Arguments may be supplied to initialize the
1526 Create an empty set.
1528 $sigset = POSIX::SigSet->new;
1530 Create a set with SIGUSR1.
1532 $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
1536 Add a signal to a SigSet object.
1538 $sigset->addset( &POSIX::SIGUSR2 );
1540 Returns C<undef> on failure.
1544 Remove a signal from the SigSet object.
1546 $sigset->delset( &POSIX::SIGUSR2 );
1548 Returns C<undef> on failure.
1552 Initialize the SigSet object to be empty.
1554 $sigset->emptyset();
1556 Returns C<undef> on failure.
1560 Initialize the SigSet object to include all signals.
1564 Returns C<undef> on failure.
1568 Tests the SigSet object to see if it contains a specific signal.
1570 if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
1571 print "contains SIGUSR1\n";
1576 =head2 POSIX::Termios
1582 Create a new Termios object. This object will be destroyed automatically
1583 when it is no longer needed. A Termios object corresponds to the termios
1584 C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
1585 and setattr() sets a file descriptor's parameters to match Termios' contents.
1587 $termios = POSIX::Termios->new;
1591 Get terminal control attributes.
1593 Obtain the attributes for stdin.
1597 Obtain the attributes for stdout.
1599 $termios->getattr( 1 )
1601 Returns C<undef> on failure.
1605 Retrieve a value from the c_cc field of a termios object. The c_cc field is
1606 an array so an index must be specified.
1608 $c_cc[1] = $termios->getcc(1);
1612 Retrieve the c_cflag field of a termios object.
1614 $c_cflag = $termios->getcflag;
1618 Retrieve the c_iflag field of a termios object.
1620 $c_iflag = $termios->getiflag;
1624 Retrieve the input baud rate.
1626 $ispeed = $termios->getispeed;
1630 Retrieve the c_lflag field of a termios object.
1632 $c_lflag = $termios->getlflag;
1636 Retrieve the c_oflag field of a termios object.
1638 $c_oflag = $termios->getoflag;
1642 Retrieve the output baud rate.
1644 $ospeed = $termios->getospeed;
1648 Set terminal control attributes.
1650 Set attributes immediately for stdout.
1652 $termios->setattr( 1, &POSIX::TCSANOW );
1654 Returns C<undef> on failure.
1658 Set a value in the c_cc field of a termios object. The c_cc field is an
1659 array so an index must be specified.
1661 $termios->setcc( &POSIX::VEOF, 1 );
1665 Set the c_cflag field of a termios object.
1667 $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
1671 Set the c_iflag field of a termios object.
1673 $termios->setiflag( $c_iflag | &POSIX::BRKINT );
1677 Set the input baud rate.
1679 $termios->setispeed( &POSIX::B9600 );
1681 Returns C<undef> on failure.
1685 Set the c_lflag field of a termios object.
1687 $termios->setlflag( $c_lflag | &POSIX::ECHO );
1691 Set the c_oflag field of a termios object.
1693 $termios->setoflag( $c_oflag | &POSIX::OPOST );
1697 Set the output baud rate.
1699 $termios->setospeed( &POSIX::B9600 );
1701 Returns C<undef> on failure.
1703 =item Baud rate values
1705 B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
1707 =item Terminal interface values
1709 TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
1711 =item c_cc field values
1713 VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
1715 =item c_cflag field values
1717 CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
1719 =item c_iflag field values
1721 BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
1723 =item c_lflag field values
1725 ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
1727 =item c_oflag field values
1733 =head1 PATHNAME CONSTANTS
1739 _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
1743 =head1 POSIX CONSTANTS
1749 _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
1753 =head1 SYSTEM CONFIGURATION
1759 _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
1769 E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
1770 EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
1771 EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
1772 EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
1773 ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
1774 ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
1775 ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
1776 EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
1777 ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
1778 ETXTBSY EUSERS EWOULDBLOCK EXDEV
1788 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
1798 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
1808 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
1818 LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
1838 SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
1839 SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
1840 SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
1841 SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
1852 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
1856 S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
1866 EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
1876 BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
1886 CLK_TCK CLOCKS_PER_SEC
1896 R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
1910 WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
1916 This document generated by ./mkposixman.PL version 19960129.