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
24 I<Everything is exported by default> with the exception of any POSIX
25 functions with the same name as a built-in Perl function, such as
26 C<abs>, C<alarm>, C<rmdir>, C<write>, etc.., which will be exported
27 only if you ask for them explicitly. This is an unfortunate backwards
28 compatibility feature. You can stop the exporting by saying C<use
29 POSIX ()> and then use the fully qualified names (ie. C<POSIX::SEEK_END>),
30 or by giving an explicit import list. If you do neither, and opt for the
31 default, C<use POSIX;> has to import I<553 symbols>.
33 This document gives a condensed list of the features available in the POSIX
34 module. Consult your operating system's manpages for general information on
35 most features. Consult L<perlfunc> for functions which are noted as being
36 identical to Perl's builtin functions.
38 The first section describes POSIX functions from the 1003.1 specification.
39 The second section describes some classes for signal objects, TTY objects,
40 and other miscellaneous objects. The remaining sections list various
41 constants and macros in an organization which roughly follows IEEE Std
46 A few functions are not implemented because they are C specific. If you
47 attempt to call these, they will print a message telling you that they
48 aren't implemented, and suggest using the Perl equivalent should one
49 exist. For example, trying to access the setjmp() call will elicit the
50 message "setjmp() is C-specific: use eval {} instead".
52 Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
53 are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
54 For example, one vendor may not define EDEADLK, or the semantics of the
55 errno values set by open(2) might not be quite right. Perl does not
56 attempt to verify POSIX compliance. That means you can currently
57 successfully say "use POSIX", and then later in your program you find
58 that your vendor has been lax and there's no usable ICANON macro after
59 all. This could be construed to be a bug.
67 This is identical to the C function C<_exit()>. It exits the program
68 immediately which means among other things buffered I/O is B<not> flushed.
70 Note that when using threads and in Linux this is B<not> a good way to
71 exit a thread because in Linux processes and threads are kind of the
72 same thing (Note: while this is the situation in early 2003 there are
73 projects under way to have threads with more POSIXly semantics in Linux).
74 If you want not to return from a thread, detach the thread.
78 This is identical to the C function C<abort()>. It terminates the
79 process with a C<SIGABRT> signal unless caught by a signal handler or
80 if the handler does not return normally (it e.g. does a C<longjmp>).
84 This is identical to Perl's builtin C<abs()> function, returning
85 the absolute value of its numerical argument.
89 Determines the accessibility of a file.
91 if( POSIX::access( "/", &POSIX::R_OK ) ){
92 print "have read permission\n";
95 Returns C<undef> on failure. Note: do not use C<access()> for
96 security purposes. Between the C<access()> call and the operation
97 you are preparing for the permissions might change: a classic
102 This is identical to the C function C<acos()>, returning
103 the arcus cosine of its numerical argument. See also L<Math::Trig>.
107 This is identical to Perl's builtin C<alarm()> function,
108 either for arming or disarming the C<SIGARLM> timer.
112 This is identical to the C function C<asctime()>. It returns
115 "Fri Jun 2 18:22:13 2000\n\0"
117 and it is called thusly
119 $asctime = asctime($sec, $min, $hour, $mday, $mon,
120 $year, $wday, $yday, $isdst);
122 The C<$mon> is zero-based: January equals C<0>. The C<$year> is
123 1900-based: 2001 equals C<101>. C<$wday> and C<$yday> default to zero
124 (and are usually ignored anyway), and C<$isdst> defaults to -1.
128 This is identical to the C function C<asin()>, returning
129 the arcus sine of its numerical argument. See also L<Math::Trig>.
133 Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
134 to achieve similar things.
138 This is identical to the C function C<atan()>, returning the
139 arcus tangent of its numerical argument. See also L<Math::Trig>.
143 This is identical to Perl's builtin C<atan2()> function, returning
144 the arcus tangent defined by its two numerical arguments, the I<y>
145 coordinate and the I<x> coordinate. See also L<Math::Trig>.
149 atexit() is C-specific: use C<END {}> instead, see L<perlsub>.
153 atof() 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.
158 atoi() is C-specific. Perl converts strings to numbers transparently.
159 If you need to force a scalar to a number, add a zero to it.
160 If you need to have just the integer part, see L<perlfunc/int>.
164 atol() is C-specific. Perl converts strings to numbers transparently.
165 If you need to force a scalar to a number, add a zero to it.
166 If you need to have just the integer part, see L<perlfunc/int>.
170 bsearch() not supplied. For doing binary search on wordlists,
175 calloc() is C-specific. Perl does memory management transparently.
179 This is identical to the C function C<ceil()>, returning the smallest
180 integer value greater than or equal to the given numerical argument.
184 This is identical to Perl's builtin C<chdir()> function, allowing
185 one to change the working (default) directory, see L<perlfunc/chdir>.
189 This is identical to Perl's builtin C<chmod()> function, allowing
190 one to change file and directory permissions, see L<perlfunc/chmod>.
194 This is identical to Perl's builtin C<chown()> function, allowing one
195 to change file and directory owners and groups, see L<perlfunc/chown>.
199 Use the method C<IO::Handle::clearerr()> instead, to reset the error
200 state (if any) and EOF state (if any) of the given stream.
204 This is identical to the C function C<clock()>, returning the
205 amount of spent processor time in microseconds.
209 Close the file. This uses file descriptors such as those obtained by calling
212 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
215 Returns C<undef> on failure.
217 See also L<perlfunc/close>.
221 This is identical to Perl's builtin C<closedir()> function for closing
222 a directory handle, see L<perlfunc/closedir>.
226 This is identical to Perl's builtin C<cos()> function, for returning
227 the cosine of its numerical argument, see L<perlfunc/cos>.
228 See also L<Math::Trig>.
232 This is identical to the C function C<cosh()>, for returning
233 the hyperbolic cosine of its numeric argument. See also L<Math::Trig>.
237 Create a new file. This returns a file descriptor like the ones returned by
238 C<POSIX::open>. Use C<POSIX::close> to close the file.
240 $fd = POSIX::creat( "foo", 0611 );
243 See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
247 Generates the path name for the controlling terminal.
249 $path = POSIX::ctermid();
253 This is identical to the C function C<ctime()> and equivalent
254 to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
258 Get the login name of the owner of the current process.
260 $name = POSIX::cuserid();
264 This is identical to the C function C<difftime()>, for returning
265 the time difference (in seconds) between two times (as returned
266 by C<time()>), see L</time>.
270 div() is C-specific, use L<perlfunc/int> on the usual C</> division and
275 This is similar to the C function C<dup()>, for duplicating a file
278 This uses file descriptors such as those obtained by calling
281 Returns C<undef> on failure.
285 This is similar to the C function C<dup2()>, for duplicating a file
286 descriptor to an another known file descriptor.
288 This uses file descriptors such as those obtained by calling
291 Returns C<undef> on failure.
295 Returns the value of errno.
297 $errno = POSIX::errno();
299 This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
303 execl() is C-specific, see L<perlfunc/exec>.
307 execle() is C-specific, see L<perlfunc/exec>.
311 execlp() is C-specific, see L<perlfunc/exec>.
315 execv() is C-specific, see L<perlfunc/exec>.
319 execve() is C-specific, see L<perlfunc/exec>.
323 execvp() is C-specific, see L<perlfunc/exec>.
327 This is identical to Perl's builtin C<exit()> function for exiting the
328 program, see L<perlfunc/exit>.
332 This is identical to Perl's builtin C<exp()> function for
333 returning the exponent (I<e>-based) of the numerical argument,
338 This is identical to Perl's builtin C<abs()> function for returning
339 the absolute value of the numerical argument, see L<perlfunc/abs>.
343 Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
347 This is identical to Perl's builtin C<fcntl()> function,
348 see L<perlfunc/fcntl>.
352 Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
356 Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
360 Use method C<IO::Handle::error()> instead.
364 Use method C<IO::Handle::flush()> instead.
365 See also L<perlvar/$OUTPUT_AUTOFLUSH>.
369 Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
373 Use method C<IO::Seekable::getpos()> instead, or see L<perlfunc/seek>.
377 Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known
378 as L<perlfunc/readline>.
382 Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
386 This is identical to the C function C<floor()>, returning the largest
387 integer value less than or equal to the numerical argument.
391 This is identical to the C function C<fmod()>.
395 It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
396 The C<$r> has the same sign as C<$x> and magnitude (absolute value)
397 less than the magnitude of C<$y>.
401 Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
405 This is identical to Perl's builtin C<fork()> function
406 for duplicating the current process, see L<perlfunc/fork>
407 and L<perlfork> if you are in Windows.
411 Retrieves the value of a configurable limit on a file or directory. This
412 uses file descriptors such as those obtained by calling C<POSIX::open>.
414 The following will determine the maximum length of the longest allowable
415 pathname on the filesystem which holds F</var/foo>.
417 $fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY );
418 $path_max = POSIX::fpathconf($fd, &POSIX::_PC_PATH_MAX);
420 Returns C<undef> on failure.
424 fprintf() is C-specific, see L<perlfunc/printf> instead.
428 fputc() is C-specific, see L<perlfunc/print> instead.
432 fputs() is C-specific, see L<perlfunc/print> instead.
436 fread() is C-specific, see L<perlfunc/read> instead.
440 free() is C-specific. Perl does memory management transparently.
444 freopen() is C-specific, see L<perlfunc/open> instead.
448 Return the mantissa and exponent of a floating-point number.
450 ($mantissa, $exponent) = POSIX::frexp( 1.234e56 );
454 fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead.
458 Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
462 Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
466 Get file status. This uses file descriptors such as those obtained by
467 calling C<POSIX::open>. The data returned is identical to the data from
468 Perl's builtin C<stat> function.
470 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
471 @stats = POSIX::fstat( $fd );
475 Use method C<IO::Handle::sync()> instead.
479 Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
483 fwrite() is C-specific, see L<perlfunc/print> instead.
487 This is identical to Perl's builtin C<getc()> function,
488 see L<perlfunc/getc>.
492 Returns one character from STDIN. Identical to Perl's C<getc()>,
493 see L<perlfunc/getc>.
497 Returns the name of the current working directory.
502 Returns the effective group identifier. Similar to Perl' s builtin
503 variable C<$(>, see L<perlvar/$EGID>.
507 Returns the value of the specified environment variable.
508 The same information is available through the C<%ENV> array.
512 Returns the effective user identifier. Identical to Perl's builtin C<$E<gt>>
513 variable, see L<perlvar/$EUID>.
517 Returns the user's real group identifier. Similar to Perl's builtin
518 variable C<$)>, see L<perlvar/$GID>.
522 This is identical to Perl's builtin C<getgrgid()> function for
523 returning group entries by group identifiers, see
524 L<perlfunc/getgrgid>.
528 This is identical to Perl's builtin C<getgrnam()> function for
529 returning group entries by group names, see L<perlfunc/getgrnam>.
533 Returns the ids of the user's supplementary groups. Similar to Perl's
534 builtin variable C<$)>, see L<perlvar/$GID>.
538 This is identical to Perl's builtin C<getlogin()> function for
539 returning the user name associated with the current session, see
540 L<perlfunc/getlogin>.
544 This is identical to Perl's builtin C<getpgrp()> function for
545 returning the process group identifier of the current process, see
550 Returns the process identifier. Identical to Perl's builtin
551 variable C<$$>, see L<perlvar/$PID>.
555 This is identical to Perl's builtin C<getppid()> function for
556 returning the process identifier of the parent process of the current
557 process , see L<perlfunc/getppid>.
561 This is identical to Perl's builtin C<getpwnam()> function for
562 returning user entries by user names, see L<perlfunc/getpwnam>.
566 This is identical to Perl's builtin C<getpwuid()> function for
567 returning user entries by user identifiers, see L<perlfunc/getpwuid>.
571 Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known
572 as the C<readline()> function, see L<perlfunc/readline>.
574 B<NOTE>: if you have C programs that still use C<gets()>, be very
575 afraid. The C<gets()> function is a source of endless grief because
576 it has no buffer overrun checks. It should B<never> be used. The
577 C<fgets()> function should be preferred instead.
581 Returns the user's identifier. Identical to Perl's builtin C<$E<lt>> variable,
586 This is identical to Perl's builtin C<gmtime()> function for
587 converting seconds since the epoch to a date in Greenwich Mean Time,
588 see L<perlfunc/gmtime>.
592 This is identical to the C function, except that it can apply to a
593 single character or to a whole string. Note that locale settings may
594 affect what characters are considered C<isalnum>. Does not work on
595 Unicode characters code point 256 or higher. Consider using regular
596 expressions and the C</[[:alnum:]]/> construct instead, or possibly
597 the C</\w/> construct.
601 This is identical to the C function, except that it can apply to
602 a single character or to a whole string. Note that locale settings
603 may affect what characters are considered C<isalpha>. Does not work
604 on Unicode characters code point 256 or higher. Consider using regular
605 expressions and the C</[[:alpha:]]/> construct instead.
609 Returns a boolean indicating whether the specified filehandle is connected
610 to a tty. Similar to the C<-t> operator, see L<perlfunc/-X>.
614 This is identical to the C function, except that it can apply to
615 a single character or to a whole string. Note that locale settings
616 may affect what characters are considered C<iscntrl>. Does not work
617 on Unicode characters code point 256 or higher. Consider using regular
618 expressions and the C</[[:cntrl:]]/> construct instead.
622 This is identical to the C function, except that it can apply to
623 a single character or to a whole string. Note that locale settings
624 may affect what characters are considered C<isdigit> (unlikely, but
625 still possible). Does not work on Unicode characters code point 256
626 or higher. Consider using regular expressions and the C</[[:digit:]]/>
627 construct instead, or the C</\d/> construct.
631 This is identical to the C function, except that it can apply to
632 a single character or to a whole string. Note that locale settings
633 may affect what characters are considered C<isgraph>. Does not work
634 on Unicode characters code point 256 or higher. Consider using regular
635 expressions and the C</[[:graph:]]/> construct instead.
639 This is identical to the C function, except that it can apply to
640 a single character or to a whole string. Note that locale settings
641 may affect what characters are considered C<islower>. Does not work
642 on Unicode characters code point 256 or higher. Consider using regular
643 expressions and the C</[[:lower:]]/> construct instead. Do B<not> use
648 This is identical to the C function, except that it can apply to
649 a single character or to a whole string. Note that locale settings
650 may affect what characters are considered C<isprint>. Does not work
651 on Unicode characters code point 256 or higher. Consider using regular
652 expressions and the C</[[:print:]]/> construct instead.
656 This is identical to the C function, except that it can apply to
657 a single character or to a whole string. Note that locale settings
658 may affect what characters are considered C<ispunct>. Does not work
659 on Unicode characters code point 256 or higher. Consider using regular
660 expressions and the C</[[:punct:]]/> construct instead.
664 This is identical to the C function, except that it can apply to
665 a single character or to a whole string. Note that locale settings
666 may affect what characters are considered C<isspace>. Does not work
667 on Unicode characters code point 256 or higher. Consider using regular
668 expressions and the C</[[:space:]]/> construct instead, or the C</\s/>
669 construct. (Note that C</\s/> and C</[[:space:]]/> are slightly
670 different in that C</[[:space:]]/> can normally match a vertical tab,
671 while C</\s/> does not.)
675 This is identical to the C function, except that it can apply to
676 a single character or to a whole string. Note that locale settings
677 may affect what characters are considered C<isupper>. Does not work
678 on Unicode characters code point 256 or higher. Consider using regular
679 expressions and the C</[[:upper:]]/> construct instead. Do B<not> use
684 This is identical to the C function, except that it can apply to a single
685 character or to a whole string. Note that locale settings may affect what
686 characters are considered C<isxdigit> (unlikely, but still possible).
687 Does not work on Unicode characters code point 256 or higher.
688 Consider using regular expressions and the C</[[:xdigit:]]/>
689 construct instead, or simply C</[0-9a-f]/i>.
693 This is identical to Perl's builtin C<kill()> function for sending
694 signals to processes (often to terminate them), see L<perlfunc/kill>.
698 (For returning absolute values of long integers.)
699 labs() is C-specific, see L<perlfunc/abs> instead.
703 This is identical to the C function, except the order of arguments is
704 consistent with Perl's builtin C<chown()> with the added restriction
705 of only one path, not an list of paths. Does the same thing as the
706 C<chown()> function but changes the owner of a symbolic link instead
707 of the file the symbolic link points to.
711 This is identical to the C function C<ldexp()>
712 for multiplying floating point numbers with powers of two.
714 $x_quadrupled = POSIX::ldexp($x, 2);
718 (For computing dividends of long integers.)
719 ldiv() is C-specific, use C</> and C<int()> instead.
723 This is identical to Perl's builtin C<link()> function
724 for creating hard links into files, see L<perlfunc/link>.
728 Get numeric formatting information. Returns a reference to a hash
729 containing the current locale formatting values.
730 Users of this function should also read L<perllocale>, where there is a
731 discussion devoted to this function
732 (L<perllocale/The localeconv function>).
734 Here is how to query the database for the B<de> (Deutsch or German) locale.
736 my $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
737 print "Locale: \"$loc\"\n";
738 my $lconv = POSIX::localeconv();
739 foreach my $property (qw(
760 printf qq(%s: "%s",\n),
761 $property, $lconv->{$property};
766 This is identical to Perl's builtin C<localtime()> function for
767 converting seconds since the epoch to a date see L<perlfunc/localtime>.
771 This is identical to Perl's builtin C<log()> function,
772 returning the natural (I<e>-based) logarithm of the numerical argument,
777 This is identical to the C function C<log10()>,
778 returning the 10-base logarithm of the numerical argument.
781 sub log10 { log($_[0]) / log(10) }
785 sub log10 { log($_[0]) / 2.30258509299405 }
789 sub log10 { log($_[0]) * 0.434294481903252 }
793 longjmp() is C-specific: use L<perlfunc/die> instead.
797 Move the file's read/write position. This uses file descriptors such as
798 those obtained by calling C<POSIX::open>.
800 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
801 $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
803 Returns C<undef> on failure.
807 malloc() is C-specific. Perl does memory management transparently.
811 This is identical to the C function C<mblen()>.
812 Perl does not have any support for the wide and multibyte
813 characters of the C standards, so this might be a rather
818 This is identical to the C function C<mbstowcs()>.
819 Perl does not have any support for the wide and multibyte
820 characters of the C standards, so this might be a rather
825 This is identical to the C function C<mbtowc()>.
826 Perl does not have any support for the wide and multibyte
827 characters of the C standards, so this might be a rather
832 memchr() is C-specific, see L<perlfunc/index> instead.
836 memcmp() is C-specific, use C<eq> instead, see L<perlop>.
840 memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
844 memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
848 memset() is C-specific, use C<x> instead, see L<perlop>.
852 This is identical to Perl's builtin C<mkdir()> function
853 for creating directories, see L<perlfunc/mkdir>.
857 This is similar to the C function C<mkfifo()> for creating
860 if (mkfifo($path, $mode)) { ....
862 Returns C<undef> on failure. The C<$mode> is similar to the
863 mode of C<mkdir()>, see L<perlfunc/mkdir>, though for C<mkfifo>
864 you B<must> specify the C<$mode>.
868 Convert date/time info to a calendar time.
872 mktime(sec, min, hour, mday, mon, year, wday = 0,
873 yday = 0, isdst = -1)
875 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
876 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
877 year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
878 year 2001 is 101. Consult your system's C<mktime()> manpage for details
879 about these and the other arguments.
881 Calendar time for December 12, 1995, at 10:30 am.
883 $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
884 print "Date = ", POSIX::ctime($time_t);
886 Returns C<undef> on failure.
890 Return the integral and fractional parts of a floating-point number.
892 ($fractional, $integral) = POSIX::modf( 3.14 );
896 This is similar to the C function C<nice()>, for changing
897 the scheduling preference of the current process. Positive
898 arguments mean more polite process, negative values more
899 needy process. Normal user processes can only be more polite.
901 Returns C<undef> on failure.
905 offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
909 Open a file for reading for writing. This returns file descriptors, not
910 Perl filehandles. Use C<POSIX::close> to close the file.
912 Open a file read-only with mode 0666.
914 $fd = POSIX::open( "foo" );
916 Open a file for read and write.
918 $fd = POSIX::open( "foo", &POSIX::O_RDWR );
920 Open a file for write, with truncation.
923 "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC
926 Create a new file with mode 0640. Set up the file for writing.
929 "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640
932 Returns C<undef> on failure.
934 See also L<perlfunc/sysopen>.
938 Open a directory for reading.
940 $dir = POSIX::opendir( "/var" );
941 @files = POSIX::readdir( $dir );
942 POSIX::closedir( $dir );
944 Returns C<undef> on failure.
948 Retrieves the value of a configurable limit on a file or directory.
950 The following will determine the maximum length of the longest allowable
951 pathname on the filesystem which holds C</var>.
953 $path_max = POSIX::pathconf( "/var",
954 &POSIX::_PC_PATH_MAX );
956 Returns C<undef> on failure.
960 This is similar to the C function C<pause()>, which suspends
961 the execution of the current process until a signal is received.
963 Returns C<undef> on failure.
967 This is identical to the C function C<perror()>, which outputs to the
968 standard error stream the specified message followed by ": " and the
969 current error string. Use the C<warn()> function and the C<$!>
970 variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
974 Create an interprocess channel. This returns file descriptors like those
975 returned by C<POSIX::open>.
977 my ($read, $write) = POSIX::pipe();
978 POSIX::write( $write, "hello", 5 );
979 POSIX::read( $read, $buf, 5 );
981 See also L<perlfunc/pipe>.
985 Computes C<$x> raised to the power C<$exponent>.
987 $ret = POSIX::pow( $x, $exponent );
989 You can also use the C<**> operator, see L<perlop>.
993 Formats and prints the specified arguments to STDOUT.
994 See also L<perlfunc/printf>.
998 putc() is C-specific, see L<perlfunc/print> instead.
1002 putchar() is C-specific, see L<perlfunc/print> instead.
1006 puts() is C-specific, see L<perlfunc/print> instead.
1010 qsort() is C-specific, see L<perlfunc/sort> instead.
1014 Sends the specified signal to the current process.
1015 See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
1019 C<rand()> is non-portable, see L<perlfunc/rand> instead.
1023 Read from a file. This uses file descriptors such as those obtained by
1024 calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
1025 read then Perl will extend it to make room for the request.
1027 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
1028 $bytes = POSIX::read( $fd, $buf, 3 );
1030 Returns C<undef> on failure.
1032 See also L<perlfunc/sysread>.
1036 This is identical to Perl's builtin C<readdir()> function
1037 for reading directory entries, see L<perlfunc/readdir>.
1041 realloc() is C-specific. Perl does memory management transparently.
1045 This is identical to Perl's builtin C<unlink()> function
1046 for removing files, see L<perlfunc/unlink>.
1050 This is identical to Perl's builtin C<rename()> function
1051 for renaming files, see L<perlfunc/rename>.
1055 Seeks to the beginning of the file.
1059 This is identical to Perl's builtin C<rewinddir()> function for
1060 rewinding directory entry streams, see L<perlfunc/rewinddir>.
1064 This is identical to Perl's builtin C<rmdir()> function
1065 for removing (empty) directories, see L<perlfunc/rmdir>.
1069 scanf() is C-specific, use E<lt>E<gt> and regular expressions instead,
1074 Sets the real group identifier and the effective group identifier for
1075 this process. Similar to assigning a value to the Perl's builtin
1076 C<$)> variable, see L<perlvar/$EGID>, except that the latter
1077 will change only the real user identifier, and that the setgid()
1078 uses only a single numeric argument, as opposed to a space-separated
1083 C<setjmp()> is C-specific: use C<eval {}> instead,
1084 see L<perlfunc/eval>.
1088 Modifies and queries the program's underlying locale. Users of this
1089 function should also read L<perllocale>, where there is a discussion
1090 devoted to this function (L<perllocale/The setlocale function>).
1091 Note that Perl itself is almost entirely unaffected by the locale
1092 except within the scope of S<C<"use locale">>. (Exceptions are listed
1093 in L<perllocale/Not within the scope of any use locale variant>.)
1095 The following examples assume
1097 use POSIX qw(setlocale LC_ALL LC_CTYPE);
1101 The following will set the traditional UNIX system locale behavior
1102 (the second argument C<"C">).
1104 $loc = setlocale( LC_ALL, "C" );
1106 The following will query the current LC_CTYPE category. (No second
1107 argument means 'query'.)
1109 $loc = setlocale( LC_CTYPE );
1111 The following will set the LC_CTYPE behaviour according to the locale
1112 environment variables (the second argument C<"">).
1113 Please see your systems C<setlocale(3)> documentation for the locale
1114 environment variables' meaning or consult L<perllocale>.
1116 $loc = setlocale( LC_CTYPE, "" );
1118 The following will set the LC_COLLATE behaviour to Argentinian
1119 Spanish. B<NOTE>: The naming and availability of locales depends on
1120 your operating system. Please consult L<perllocale> for how to find
1121 out which locales are available in your system.
1123 $loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" );
1127 This is similar to the C function C<setpgid()> for
1128 setting the process group identifier of the current process.
1130 Returns C<undef> on failure.
1134 This is identical to the C function C<setsid()> for
1135 setting the session identifier of the current process.
1139 Sets the real user identifier and the effective user identifier for
1140 this process. Similar to assigning a value to the Perl's builtin
1141 C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter
1142 will change only the real user identifier.
1146 Detailed signal management. This uses C<POSIX::SigAction> objects for
1147 the C<action> and C<oldaction> arguments (the oldaction can also be
1148 just a hash reference). Consult your system's C<sigaction> manpage
1149 for details, see also C<POSIX::SigRt>.
1153 sigaction(signal, action, oldaction = 0)
1155 Returns C<undef> on failure. The C<signal> must be a number (like
1156 SIGHUP), not a string (like "SIGHUP"), though Perl does try hard
1159 If you use the SA_SIGINFO flag, the signal handler will in addition to
1160 the first argument, the signal name, also receive a second argument, a
1161 hash reference, inside which are the following keys with the following
1162 semantics, as defined by POSIX/SUSv3:
1164 signo the signal number
1165 errno the error number
1166 code if this is zero or less, the signal was sent by
1167 a user process and the uid and pid make sense,
1168 otherwise the signal was sent by the kernel
1170 The following are also defined by POSIX/SUSv3, but unfortunately
1171 not very widely implemented:
1173 pid the process id generating the signal
1174 uid the uid of the process id generating the signal
1175 status exit value or signal for SIGCHLD
1176 band band event for SIGPOLL
1178 A third argument is also passed to the handler, which contains a copy
1179 of the raw binary contents of the siginfo structure: if a system has
1180 some non-POSIX fields, this third argument is where to unpack() them
1183 Note that not all siginfo values make sense simultaneously (some are
1184 valid only for certain signals, for example), and not all values make
1185 sense from Perl perspective, you should to consult your system's
1186 C<sigaction> and possibly also C<siginfo> documentation.
1190 siglongjmp() is C-specific: use L<perlfunc/die> instead.
1194 Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
1195 objects for the C<sigset> argument. Consult your system's C<sigpending>
1196 manpage for details.
1202 Returns C<undef> on failure.
1206 Change and/or examine calling process's signal mask. This uses
1207 C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
1208 Consult your system's C<sigprocmask> manpage for details.
1212 sigprocmask(how, sigset, oldsigset = 0)
1214 Returns C<undef> on failure.
1216 Note that you can't reliably block or unblock a signal from its own signal
1217 handler if you're using safe signals. Other signals can be blocked or unblocked
1222 C<sigsetjmp()> is C-specific: use C<eval {}> instead,
1223 see L<perlfunc/eval>.
1227 Install a signal mask and suspend process until signal arrives. This uses
1228 C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
1229 system's C<sigsuspend> manpage for details.
1233 sigsuspend(signal_mask)
1235 Returns C<undef> on failure.
1239 This is identical to Perl's builtin C<sin()> function
1240 for returning the sine of the numerical argument,
1241 see L<perlfunc/sin>. See also L<Math::Trig>.
1245 This is identical to the C function C<sinh()>
1246 for returning the hyperbolic sine of the numerical argument.
1247 See also L<Math::Trig>.
1251 This is functionally identical to Perl's builtin C<sleep()> function
1252 for suspending the execution of the current for process for certain
1253 number of seconds, see L<perlfunc/sleep>. There is one significant
1254 difference, however: C<POSIX::sleep()> returns the number of
1255 B<unslept> seconds, while the C<CORE::sleep()> returns the
1256 number of slept seconds.
1260 This is similar to Perl's builtin C<sprintf()> function
1261 for returning a string that has the arguments formatted as requested,
1262 see L<perlfunc/sprintf>.
1266 This is identical to Perl's builtin C<sqrt()> function.
1267 for returning the square root of the numerical argument,
1268 see L<perlfunc/sqrt>.
1272 Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
1276 sscanf() is C-specific, use regular expressions instead,
1281 This is identical to Perl's builtin C<stat()> function
1282 for returning information about files and directories.
1286 strcat() is C-specific, use C<.=> instead, see L<perlop>.
1290 strchr() is C-specific, see L<perlfunc/index> instead.
1294 strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
1298 This is identical to the C function C<strcoll()>
1299 for collating (comparing) strings transformed using
1300 the C<strxfrm()> function. Not really needed since
1301 Perl can do this transparently, see L<perllocale>.
1305 strcpy() is C-specific, use C<=> instead, see L<perlop>.
1309 strcspn() is C-specific, use regular expressions instead,
1314 Returns the error string for the specified errno.
1315 Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
1319 Convert date and time information to string. Returns the string.
1323 strftime(fmt, sec, min, hour, mday, mon, year,
1324 wday = -1, yday = -1, isdst = -1)
1326 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
1327 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
1328 year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the
1329 year 2001 is 101. Consult your system's C<strftime()> manpage for details
1330 about these and the other arguments.
1332 If you want your code to be portable, your format (C<fmt>) argument
1333 should use only the conversion specifiers defined by the ANSI C
1334 standard (C89, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
1335 But even then, the B<results> of some of the conversion specifiers are
1336 non-portable. For example, the specifiers C<aAbBcpZ> change according
1337 to the locale settings of the user, and both how to set locales (the
1338 locale names) and what output to expect are non-standard.
1339 The specifier C<c> changes according to the timezone settings of the
1340 user and the timezone computation rules of the operating system.
1341 The C<Z> specifier is notoriously unportable since the names of
1342 timezones are non-standard. Sticking to the numeric specifiers is the
1345 The given arguments are made consistent as though by calling
1346 C<mktime()> before calling your system's C<strftime()> function,
1347 except that the C<isdst> value is not affected.
1349 The string for Tuesday, December 12, 1995.
1351 $str = POSIX::strftime( "%A, %B %d, %Y",
1352 0, 0, 0, 12, 11, 95, 2 );
1357 strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
1361 strncat() is C-specific, use C<.=> instead, see L<perlop>.
1365 strncmp() is C-specific, use C<eq> instead, see L<perlop>.
1369 strncpy() is C-specific, use C<=> instead, see L<perlop>.
1373 strpbrk() is C-specific, use regular expressions instead,
1378 strrchr() is C-specific, see L<perlfunc/rindex> instead.
1382 strspn() is C-specific, use regular expressions instead,
1387 This is identical to Perl's builtin C<index()> function,
1388 see L<perlfunc/index>.
1392 String to double translation. Returns the parsed number and the number
1393 of characters in the unparsed portion of the string. Truly
1394 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1395 error, so clear $! before calling strtod. However, non-POSIX systems
1396 may not check for overflow, and therefore will never set $!.
1398 strtod should respect any POSIX I<setlocale()> settings.
1400 To parse a string $str as a floating point number use
1403 ($num, $n_unparsed) = POSIX::strtod($str);
1405 The second returned item and $! can be used to check for valid input:
1407 if (($str eq '') || ($n_unparsed != 0) || $!) {
1408 die "Non-numeric input $str" . ($! ? ": $!\n" : "\n");
1411 When called in a scalar context strtod returns the parsed number.
1415 strtok() is C-specific, use regular expressions instead, see
1416 L<perlre>, or L<perlfunc/split>.
1420 String to (long) integer translation. Returns the parsed number and
1421 the number of characters in the unparsed portion of the string. Truly
1422 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1423 error, so clear $! before calling strtol. However, non-POSIX systems
1424 may not check for overflow, and therefore will never set $!.
1426 strtol should respect any POSIX I<setlocale()> settings.
1428 To parse a string $str as a number in some base $base use
1431 ($num, $n_unparsed) = POSIX::strtol($str, $base);
1433 The base should be zero or between 2 and 36, inclusive. When the base
1434 is zero or omitted strtol will use the string itself to determine the
1435 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1436 octal; any other leading characters mean decimal. Thus, "1234" is
1437 parsed as a decimal number, "01234" as an octal number, and "0x1234"
1438 as a hexadecimal number.
1440 The second returned item and $! can be used to check for valid input:
1442 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1443 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1446 When called in a scalar context strtol returns the parsed number.
1450 String to unsigned (long) integer translation. strtoul() is identical
1451 to strtol() except that strtoul() only parses unsigned integers. See
1452 L</strtol> for details.
1454 Note: Some vendors supply strtod() and strtol() but not strtoul().
1455 Other vendors that do supply strtoul() parse "-1" as a valid value.
1459 String transformation. Returns the transformed string.
1461 $dst = POSIX::strxfrm( $src );
1463 Used in conjunction with the C<strcoll()> function, see L</strcoll>.
1465 Not really needed since Perl can do this transparently, see
1470 Retrieves values of system configurable variables.
1472 The following will get the machine's clock speed.
1474 $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1476 Returns C<undef> on failure.
1480 This is identical to Perl's builtin C<system()> function, see
1485 This is identical to the C function C<tan()>, returning the
1486 tangent of the numerical argument. See also L<Math::Trig>.
1490 This is identical to the C function C<tanh()>, returning the
1491 hyperbolic tangent of the numerical argument. See also L<Math::Trig>.
1495 This is similar to the C function C<tcdrain()> for draining
1496 the output queue of its argument stream.
1498 Returns C<undef> on failure.
1502 This is similar to the C function C<tcflow()> for controlling
1503 the flow of its argument stream.
1505 Returns C<undef> on failure.
1509 This is similar to the C function C<tcflush()> for flushing
1510 the I/O buffers of its argument stream.
1512 Returns C<undef> on failure.
1516 This is identical to the C function C<tcgetpgrp()> for returning the
1517 process group identifier of the foreground process group of the controlling
1522 This is similar to the C function C<tcsendbreak()> for sending
1523 a break on its argument stream.
1525 Returns C<undef> on failure.
1529 This is similar to the C function C<tcsetpgrp()> for setting the
1530 process group identifier of the foreground process group of the controlling
1533 Returns C<undef> on failure.
1537 This is identical to Perl's builtin C<time()> function
1538 for returning the number of seconds since the epoch
1539 (whatever it is for the system), see L<perlfunc/time>.
1543 The times() function returns elapsed realtime since some point in the past
1544 (such as system startup), user and system times for this process, and user
1545 and system times used by child processes. All times are returned in clock
1548 ($realtime, $user, $system, $cuser, $csystem)
1551 Note: Perl's builtin C<times()> function returns four values, measured in
1556 Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
1560 Returns a name for a temporary file.
1562 $tmpfile = POSIX::tmpnam();
1564 For security reasons, which are probably detailed in your system's
1565 documentation for the C library tmpnam() function, this interface
1566 should not be used; instead see L<File::Temp>.
1570 This is identical to the C function, except that it can apply to a single
1571 character or to a whole string. Consider using the C<lc()> function,
1572 see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
1577 This is identical to the C function, except that it can apply to a single
1578 character or to a whole string. Consider using the C<uc()> function,
1579 see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
1584 This is identical to the C function C<ttyname()> for returning the
1585 name of the current terminal.
1589 Retrieves the time conversion information from the C<tzname> variable.
1592 ($std, $dst) = POSIX::tzname();
1596 This is identical to the C function C<tzset()> for setting
1597 the current timezone based on the environment variable C<TZ>,
1598 to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
1603 This is identical to Perl's builtin C<umask()> function
1604 for setting (and querying) the file creation permission mask,
1605 see L<perlfunc/umask>.
1609 Get name of current operating system.
1611 ($sysname, $nodename, $release, $version, $machine)
1614 Note that the actual meanings of the various fields are not
1615 that well standardized, do not expect any great portability.
1616 The C<$sysname> might be the name of the operating system,
1617 the C<$nodename> might be the name of the host, the C<$release>
1618 might be the (major) release number of the operating system,
1619 the C<$version> might be the (minor) release number of the
1620 operating system, and the C<$machine> might be a hardware identifier.
1625 Use method C<IO::Handle::ungetc()> instead.
1629 This is identical to Perl's builtin C<unlink()> function
1630 for removing files, see L<perlfunc/unlink>.
1634 This is identical to Perl's builtin C<utime()> function
1635 for changing the time stamps of files and directories,
1636 see L<perlfunc/utime>.
1640 vfprintf() is C-specific, see L<perlfunc/printf> instead.
1644 vprintf() is C-specific, see L<perlfunc/printf> instead.
1648 vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
1652 This is identical to Perl's builtin C<wait()> function,
1653 see L<perlfunc/wait>.
1657 Wait for a child process to change state. This is identical to Perl's
1658 builtin C<waitpid()> function, see L<perlfunc/waitpid>.
1660 $pid = POSIX::waitpid( -1, POSIX::WNOHANG );
1661 print "status = ", ($? / 256), "\n";
1665 This is identical to the C function C<wcstombs()>.
1666 Perl does not have any support for the wide and multibyte
1667 characters of the C standards, so this might be a rather
1672 This is identical to the C function C<wctomb()>.
1673 Perl does not have any support for the wide and multibyte
1674 characters of the C standards, so this might be a rather
1679 Write to a file. This uses file descriptors such as those obtained by
1680 calling C<POSIX::open>.
1682 $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
1684 $bytes = POSIX::write( $fd, $buf, 5 );
1686 Returns C<undef> on failure.
1688 See also L<perlfunc/syswrite>.
1694 =head2 POSIX::SigAction
1700 Creates a new C<POSIX::SigAction> object which corresponds to the C
1701 C<struct sigaction>. This object will be destroyed automatically when
1702 it is no longer needed. The first parameter is the handler, a sub
1703 reference. The second parameter is a C<POSIX::SigSet> object, it
1704 defaults to the empty set. The third parameter contains the
1705 C<sa_flags>, it defaults to 0.
1707 $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
1708 $sigaction = POSIX::SigAction->new(
1709 \&handler, $sigset, &POSIX::SA_NOCLDSTOP
1712 This C<POSIX::SigAction> object is intended for use with the C<POSIX::sigaction()>
1725 accessor functions to get/set the values of a SigAction object.
1727 $sigset = $sigaction->mask;
1728 $sigaction->flags(&POSIX::SA_RESTART);
1732 accessor function for the "safe signals" flag of a SigAction object; see
1733 L<perlipc> for general information on safe (a.k.a. "deferred") signals. If
1734 you wish to handle a signal safely, use this accessor to set the "safe" flag
1735 in the C<POSIX::SigAction> object:
1737 $sigaction->safe(1);
1739 You may also examine the "safe" flag on the output action object which is
1740 filled in when given as the third parameter to C<POSIX::sigaction()>:
1742 sigaction(SIGINT, $new_action, $old_action);
1743 if ($old_action->safe) {
1744 # previous SIGINT handler used safe signals
1755 A hash of the POSIX realtime signal handlers. It is an extension of
1756 the standard %SIG, the $POSIX::SIGRT{SIGRTMIN} is roughly equivalent
1757 to $SIG{SIGRTMIN}, but the right POSIX moves (see below) are made with
1758 the POSIX::SigSet and POSIX::sigaction instead of accessing the %SIG.
1760 You can set the %POSIX::SIGRT elements to set the POSIX realtime
1761 signal handlers, use C<delete> and C<exists> on the elements, and use
1762 C<scalar> on the C<%POSIX::SIGRT> to find out how many POSIX realtime
1763 signals there are available (SIGRTMAX - SIGRTMIN + 1, the SIGRTMAX is
1764 a valid POSIX realtime signal).
1766 Setting the %SIGRT elements is equivalent to calling this:
1769 my ($rtsig, $handler, $flags) = @_;
1770 my $sigset = POSIX::SigSet($rtsig);
1771 my $sigact = POSIX::SigAction->new($handler,$sigset,$flags);
1772 sigaction($rtsig, $sigact);
1775 The flags default to zero, if you want something different you can
1776 either use C<local> on $POSIX::SigRt::SIGACTION_FLAGS, or you can
1777 derive from POSIX::SigRt and define your own C<new()> (the tied hash
1778 STORE method of the %SIGRT calls C<new($rtsig, $handler, $SIGACTION_FLAGS)>,
1779 where the $rtsig ranges from zero to SIGRTMAX - SIGRTMIN + 1).
1781 Just as with any signal, you can use sigaction($rtsig, undef, $oa) to
1782 retrieve the installed signal handler (or, rather, the signal action).
1784 B<NOTE:> whether POSIX realtime signals really work in your system, or
1785 whether Perl has been compiled so that it works with them, is outside
1790 Return the minimum POSIX realtime signal number available, or C<undef>
1791 if no POSIX realtime signals are available.
1795 Return the maximum POSIX realtime signal number available, or C<undef>
1796 if no POSIX realtime signals are available.
1800 =head2 POSIX::SigSet
1806 Create a new SigSet object. This object will be destroyed automatically
1807 when it is no longer needed. Arguments may be supplied to initialize the
1810 Create an empty set.
1812 $sigset = POSIX::SigSet->new;
1814 Create a set with SIGUSR1.
1816 $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
1820 Add a signal to a SigSet object.
1822 $sigset->addset( &POSIX::SIGUSR2 );
1824 Returns C<undef> on failure.
1828 Remove a signal from the SigSet object.
1830 $sigset->delset( &POSIX::SIGUSR2 );
1832 Returns C<undef> on failure.
1836 Initialize the SigSet object to be empty.
1838 $sigset->emptyset();
1840 Returns C<undef> on failure.
1844 Initialize the SigSet object to include all signals.
1848 Returns C<undef> on failure.
1852 Tests the SigSet object to see if it contains a specific signal.
1854 if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
1855 print "contains SIGUSR1\n";
1860 =head2 POSIX::Termios
1866 Create a new Termios object. This object will be destroyed automatically
1867 when it is no longer needed. A Termios object corresponds to the termios
1868 C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
1869 and setattr() sets a file descriptor's parameters to match Termios' contents.
1871 $termios = POSIX::Termios->new;
1875 Get terminal control attributes.
1877 Obtain the attributes for stdin.
1879 $termios->getattr( 0 ) # Recommended for clarity.
1882 Obtain the attributes for stdout.
1884 $termios->getattr( 1 )
1886 Returns C<undef> on failure.
1890 Retrieve a value from the c_cc field of a termios object. The c_cc field is
1891 an array so an index must be specified.
1893 $c_cc[1] = $termios->getcc(1);
1897 Retrieve the c_cflag field of a termios object.
1899 $c_cflag = $termios->getcflag;
1903 Retrieve the c_iflag field of a termios object.
1905 $c_iflag = $termios->getiflag;
1909 Retrieve the input baud rate.
1911 $ispeed = $termios->getispeed;
1915 Retrieve the c_lflag field of a termios object.
1917 $c_lflag = $termios->getlflag;
1921 Retrieve the c_oflag field of a termios object.
1923 $c_oflag = $termios->getoflag;
1927 Retrieve the output baud rate.
1929 $ospeed = $termios->getospeed;
1933 Set terminal control attributes.
1935 Set attributes immediately for stdout.
1937 $termios->setattr( 1, &POSIX::TCSANOW );
1939 Returns C<undef> on failure.
1943 Set a value in the c_cc field of a termios object. The c_cc field is an
1944 array so an index must be specified.
1946 $termios->setcc( &POSIX::VEOF, 1 );
1950 Set the c_cflag field of a termios object.
1952 $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
1956 Set the c_iflag field of a termios object.
1958 $termios->setiflag( $c_iflag | &POSIX::BRKINT );
1962 Set the input baud rate.
1964 $termios->setispeed( &POSIX::B9600 );
1966 Returns C<undef> on failure.
1970 Set the c_lflag field of a termios object.
1972 $termios->setlflag( $c_lflag | &POSIX::ECHO );
1976 Set the c_oflag field of a termios object.
1978 $termios->setoflag( $c_oflag | &POSIX::OPOST );
1982 Set the output baud rate.
1984 $termios->setospeed( &POSIX::B9600 );
1986 Returns C<undef> on failure.
1988 =item Baud rate values
1990 B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
1992 =item Terminal interface values
1994 TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
1996 =item c_cc field values
1998 VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
2000 =item c_cflag field values
2002 CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
2004 =item c_iflag field values
2006 BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
2008 =item c_lflag field values
2010 ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
2012 =item c_oflag field values
2018 =head1 PATHNAME CONSTANTS
2024 _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX
2025 _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE
2029 =head1 POSIX CONSTANTS
2035 _POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL
2036 _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX
2037 _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX
2038 _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX
2039 _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
2043 =head1 SYSTEM CONFIGURATION
2049 _SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX
2050 _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX
2061 E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
2062 EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
2063 EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
2064 EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
2065 ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
2066 ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
2067 ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
2068 EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
2069 ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
2070 ETXTBSY EUSERS EWOULDBLOCK EXDEV
2080 FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK
2081 F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK
2082 O_RDONLY O_RDWR O_TRUNC O_WRONLY
2092 DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN
2093 DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX
2094 FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX
2095 FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP
2096 LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP
2106 ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX
2107 LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX
2108 PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX
2109 UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
2119 LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
2139 SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
2140 SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
2141 SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
2142 SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
2153 S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH
2154 S_IWUSR S_IXGRP S_IXOTH S_IXUSR
2158 S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
2168 EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
2178 BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
2188 CLK_TCK CLOCKS_PER_SEC
2198 R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
2214 Do not suspend the calling process until a child process
2215 changes state but instead return immediately.
2219 Catch stopped child processes.
2225 WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
2231 WIFEXITED(${^CHILD_ERROR_NATIVE}) returns true if the child process
2232 exited normally (C<exit()> or by falling off the end of C<main()>)
2236 WEXITSTATUS(${^CHILD_ERROR_NATIVE}) returns the normal exit status of
2237 the child process (only meaningful if WIFEXITED(${^CHILD_ERROR_NATIVE})
2242 WIFSIGNALED(${^CHILD_ERROR_NATIVE}) returns true if the child process
2243 terminated because of a signal
2247 WTERMSIG(${^CHILD_ERROR_NATIVE}) returns the signal the child process
2248 terminated for (only meaningful if WIFSIGNALED(${^CHILD_ERROR_NATIVE})
2253 WIFSTOPPED(${^CHILD_ERROR_NATIVE}) returns true if the child process is
2254 currently stopped (can happen only if you specified the WUNTRACED flag
2259 WSTOPSIG(${^CHILD_ERROR_NATIVE}) returns the signal the child process
2260 was stopped for (only meaningful if WIFSTOPPED(${^CHILD_ERROR_NATIVE})