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.
731 Here is how to query the database for the B<de> (Deutsch or German) locale.
733 my $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
734 print "Locale: \"$loc\"\n";
735 my $lconv = POSIX::localeconv();
736 foreach my $property (qw(
757 printf qq(%s: "%s",\n),
758 $property, $lconv->{$property};
763 This is identical to Perl's builtin C<localtime()> function for
764 converting seconds since the epoch to a date see L<perlfunc/localtime>.
768 This is identical to Perl's builtin C<log()> function,
769 returning the natural (I<e>-based) logarithm of the numerical argument,
774 This is identical to the C function C<log10()>,
775 returning the 10-base logarithm of the numerical argument.
778 sub log10 { log($_[0]) / log(10) }
782 sub log10 { log($_[0]) / 2.30258509299405 }
786 sub log10 { log($_[0]) * 0.434294481903252 }
790 longjmp() is C-specific: use L<perlfunc/die> instead.
794 Move the file's read/write position. This uses file descriptors such as
795 those obtained by calling C<POSIX::open>.
797 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
798 $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
800 Returns C<undef> on failure.
804 malloc() is C-specific. Perl does memory management transparently.
808 This is identical to the C function C<mblen()>.
809 Perl does not have any support for the wide and multibyte
810 characters of the C standards, so this might be a rather
815 This is identical to the C function C<mbstowcs()>.
816 Perl does not have any support for the wide and multibyte
817 characters of the C standards, so this might be a rather
822 This is identical to the C function C<mbtowc()>.
823 Perl does not have any support for the wide and multibyte
824 characters of the C standards, so this might be a rather
829 memchr() is C-specific, see L<perlfunc/index> instead.
833 memcmp() is C-specific, use C<eq> instead, see L<perlop>.
837 memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
841 memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
845 memset() is C-specific, use C<x> instead, see L<perlop>.
849 This is identical to Perl's builtin C<mkdir()> function
850 for creating directories, see L<perlfunc/mkdir>.
854 This is similar to the C function C<mkfifo()> for creating
857 if (mkfifo($path, $mode)) { ....
859 Returns C<undef> on failure. The C<$mode> is similar to the
860 mode of C<mkdir()>, see L<perlfunc/mkdir>, though for C<mkfifo>
861 you B<must> specify the C<$mode>.
865 Convert date/time info to a calendar time.
869 mktime(sec, min, hour, mday, mon, year, wday = 0,
870 yday = 0, isdst = -1)
872 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
873 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
874 year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
875 year 2001 is 101. Consult your system's C<mktime()> manpage for details
876 about these and the other arguments.
878 Calendar time for December 12, 1995, at 10:30 am.
880 $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
881 print "Date = ", POSIX::ctime($time_t);
883 Returns C<undef> on failure.
887 Return the integral and fractional parts of a floating-point number.
889 ($fractional, $integral) = POSIX::modf( 3.14 );
893 This is similar to the C function C<nice()>, for changing
894 the scheduling preference of the current process. Positive
895 arguments mean more polite process, negative values more
896 needy process. Normal user processes can only be more polite.
898 Returns C<undef> on failure.
902 offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
906 Open a file for reading for writing. This returns file descriptors, not
907 Perl filehandles. Use C<POSIX::close> to close the file.
909 Open a file read-only with mode 0666.
911 $fd = POSIX::open( "foo" );
913 Open a file for read and write.
915 $fd = POSIX::open( "foo", &POSIX::O_RDWR );
917 Open a file for write, with truncation.
920 "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC
923 Create a new file with mode 0640. Set up the file for writing.
926 "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640
929 Returns C<undef> on failure.
931 See also L<perlfunc/sysopen>.
935 Open a directory for reading.
937 $dir = POSIX::opendir( "/var" );
938 @files = POSIX::readdir( $dir );
939 POSIX::closedir( $dir );
941 Returns C<undef> on failure.
945 Retrieves the value of a configurable limit on a file or directory.
947 The following will determine the maximum length of the longest allowable
948 pathname on the filesystem which holds C</var>.
950 $path_max = POSIX::pathconf( "/var",
951 &POSIX::_PC_PATH_MAX );
953 Returns C<undef> on failure.
957 This is similar to the C function C<pause()>, which suspends
958 the execution of the current process until a signal is received.
960 Returns C<undef> on failure.
964 This is identical to the C function C<perror()>, which outputs to the
965 standard error stream the specified message followed by ": " and the
966 current error string. Use the C<warn()> function and the C<$!>
967 variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
971 Create an interprocess channel. This returns file descriptors like those
972 returned by C<POSIX::open>.
974 my ($read, $write) = POSIX::pipe();
975 POSIX::write( $write, "hello", 5 );
976 POSIX::read( $read, $buf, 5 );
978 See also L<perlfunc/pipe>.
982 Computes C<$x> raised to the power C<$exponent>.
984 $ret = POSIX::pow( $x, $exponent );
986 You can also use the C<**> operator, see L<perlop>.
990 Formats and prints the specified arguments to STDOUT.
991 See also L<perlfunc/printf>.
995 putc() is C-specific, see L<perlfunc/print> instead.
999 putchar() is C-specific, see L<perlfunc/print> instead.
1003 puts() is C-specific, see L<perlfunc/print> instead.
1007 qsort() is C-specific, see L<perlfunc/sort> instead.
1011 Sends the specified signal to the current process.
1012 See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
1016 C<rand()> is non-portable, see L<perlfunc/rand> instead.
1020 Read from a file. This uses file descriptors such as those obtained by
1021 calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
1022 read then Perl will extend it to make room for the request.
1024 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
1025 $bytes = POSIX::read( $fd, $buf, 3 );
1027 Returns C<undef> on failure.
1029 See also L<perlfunc/sysread>.
1033 This is identical to Perl's builtin C<readdir()> function
1034 for reading directory entries, see L<perlfunc/readdir>.
1038 realloc() is C-specific. Perl does memory management transparently.
1042 This is identical to Perl's builtin C<unlink()> function
1043 for removing files, see L<perlfunc/unlink>.
1047 This is identical to Perl's builtin C<rename()> function
1048 for renaming files, see L<perlfunc/rename>.
1052 Seeks to the beginning of the file.
1056 This is identical to Perl's builtin C<rewinddir()> function for
1057 rewinding directory entry streams, see L<perlfunc/rewinddir>.
1061 This is identical to Perl's builtin C<rmdir()> function
1062 for removing (empty) directories, see L<perlfunc/rmdir>.
1066 scanf() is C-specific, use E<lt>E<gt> and regular expressions instead,
1071 Sets the real group identifier and the effective group identifier for
1072 this process. Similar to assigning a value to the Perl's builtin
1073 C<$)> variable, see L<perlvar/$EGID>, except that the latter
1074 will change only the real user identifier, and that the setgid()
1075 uses only a single numeric argument, as opposed to a space-separated
1080 C<setjmp()> is C-specific: use C<eval {}> instead,
1081 see L<perlfunc/eval>.
1085 Modifies and queries program's locale. The following examples assume
1087 use POSIX qw(setlocale LC_ALL LC_CTYPE);
1091 The following will set the traditional UNIX system locale behavior
1092 (the second argument C<"C">).
1094 $loc = setlocale( LC_ALL, "C" );
1096 The following will query the current LC_CTYPE category. (No second
1097 argument means 'query'.)
1099 $loc = setlocale( LC_CTYPE );
1101 The following will set the LC_CTYPE behaviour according to the locale
1102 environment variables (the second argument C<"">).
1103 Please see your systems C<setlocale(3)> documentation for the locale
1104 environment variables' meaning or consult L<perllocale>.
1106 $loc = setlocale( LC_CTYPE, "" );
1108 The following will set the LC_COLLATE behaviour to Argentinian
1109 Spanish. B<NOTE>: The naming and availability of locales depends on
1110 your operating system. Please consult L<perllocale> for how to find
1111 out which locales are available in your system.
1113 $loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" );
1117 This is similar to the C function C<setpgid()> for
1118 setting the process group identifier of the current process.
1120 Returns C<undef> on failure.
1124 This is identical to the C function C<setsid()> for
1125 setting the session identifier of the current process.
1129 Sets the real user identifier and the effective user identifier for
1130 this process. Similar to assigning a value to the Perl's builtin
1131 C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter
1132 will change only the real user identifier.
1136 Detailed signal management. This uses C<POSIX::SigAction> objects for
1137 the C<action> and C<oldaction> arguments (the oldaction can also be
1138 just a hash reference). Consult your system's C<sigaction> manpage
1139 for details, see also C<POSIX::SigRt>.
1143 sigaction(signal, action, oldaction = 0)
1145 Returns C<undef> on failure. The C<signal> must be a number (like
1146 SIGHUP), not a string (like "SIGHUP"), though Perl does try hard
1149 If you use the SA_SIGINFO flag, the signal handler will in addition to
1150 the first argument, the signal name, also receive a second argument, a
1151 hash reference, inside which are the following keys with the following
1152 semantics, as defined by POSIX/SUSv3:
1154 signo the signal number
1155 errno the error number
1156 code if this is zero or less, the signal was sent by
1157 a user process and the uid and pid make sense,
1158 otherwise the signal was sent by the kernel
1160 The following are also defined by POSIX/SUSv3, but unfortunately
1161 not very widely implemented:
1163 pid the process id generating the signal
1164 uid the uid of the process id generating the signal
1165 status exit value or signal for SIGCHLD
1166 band band event for SIGPOLL
1168 A third argument is also passed to the handler, which contains a copy
1169 of the raw binary contents of the siginfo structure: if a system has
1170 some non-POSIX fields, this third argument is where to unpack() them
1173 Note that not all siginfo values make sense simultaneously (some are
1174 valid only for certain signals, for example), and not all values make
1175 sense from Perl perspective, you should to consult your system's
1176 C<sigaction> and possibly also C<siginfo> documentation.
1180 siglongjmp() is C-specific: use L<perlfunc/die> instead.
1184 Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
1185 objects for the C<sigset> argument. Consult your system's C<sigpending>
1186 manpage for details.
1192 Returns C<undef> on failure.
1196 Change and/or examine calling process's signal mask. This uses
1197 C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
1198 Consult your system's C<sigprocmask> manpage for details.
1202 sigprocmask(how, sigset, oldsigset = 0)
1204 Returns C<undef> on failure.
1206 Note that you can't reliably block or unblock a signal from its own signal
1207 handler if you're using safe signals. Other signals can be blocked or unblocked
1212 C<sigsetjmp()> is C-specific: use C<eval {}> instead,
1213 see L<perlfunc/eval>.
1217 Install a signal mask and suspend process until signal arrives. This uses
1218 C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
1219 system's C<sigsuspend> manpage for details.
1223 sigsuspend(signal_mask)
1225 Returns C<undef> on failure.
1229 This is identical to Perl's builtin C<sin()> function
1230 for returning the sine of the numerical argument,
1231 see L<perlfunc/sin>. See also L<Math::Trig>.
1235 This is identical to the C function C<sinh()>
1236 for returning the hyperbolic sine of the numerical argument.
1237 See also L<Math::Trig>.
1241 This is functionally identical to Perl's builtin C<sleep()> function
1242 for suspending the execution of the current for process for certain
1243 number of seconds, see L<perlfunc/sleep>. There is one significant
1244 difference, however: C<POSIX::sleep()> returns the number of
1245 B<unslept> seconds, while the C<CORE::sleep()> returns the
1246 number of slept seconds.
1250 This is similar to Perl's builtin C<sprintf()> function
1251 for returning a string that has the arguments formatted as requested,
1252 see L<perlfunc/sprintf>.
1256 This is identical to Perl's builtin C<sqrt()> function.
1257 for returning the square root of the numerical argument,
1258 see L<perlfunc/sqrt>.
1262 Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
1266 sscanf() is C-specific, use regular expressions instead,
1271 This is identical to Perl's builtin C<stat()> function
1272 for returning information about files and directories.
1276 strcat() is C-specific, use C<.=> instead, see L<perlop>.
1280 strchr() is C-specific, see L<perlfunc/index> instead.
1284 strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
1288 This is identical to the C function C<strcoll()>
1289 for collating (comparing) strings transformed using
1290 the C<strxfrm()> function. Not really needed since
1291 Perl can do this transparently, see L<perllocale>.
1295 strcpy() is C-specific, use C<=> instead, see L<perlop>.
1299 strcspn() is C-specific, use regular expressions instead,
1304 Returns the error string for the specified errno.
1305 Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
1309 Convert date and time information to string. Returns the string.
1313 strftime(fmt, sec, min, hour, mday, mon, year,
1314 wday = -1, yday = -1, isdst = -1)
1316 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
1317 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
1318 year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the
1319 year 2001 is 101. Consult your system's C<strftime()> manpage for details
1320 about these and the other arguments.
1322 If you want your code to be portable, your format (C<fmt>) argument
1323 should use only the conversion specifiers defined by the ANSI C
1324 standard (C89, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
1325 But even then, the B<results> of some of the conversion specifiers are
1326 non-portable. For example, the specifiers C<aAbBcpZ> change according
1327 to the locale settings of the user, and both how to set locales (the
1328 locale names) and what output to expect are non-standard.
1329 The specifier C<c> changes according to the timezone settings of the
1330 user and the timezone computation rules of the operating system.
1331 The C<Z> specifier is notoriously unportable since the names of
1332 timezones are non-standard. Sticking to the numeric specifiers is the
1335 The given arguments are made consistent as though by calling
1336 C<mktime()> before calling your system's C<strftime()> function,
1337 except that the C<isdst> value is not affected.
1339 The string for Tuesday, December 12, 1995.
1341 $str = POSIX::strftime( "%A, %B %d, %Y",
1342 0, 0, 0, 12, 11, 95, 2 );
1347 strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
1351 strncat() is C-specific, use C<.=> instead, see L<perlop>.
1355 strncmp() is C-specific, use C<eq> instead, see L<perlop>.
1359 strncpy() is C-specific, use C<=> instead, see L<perlop>.
1363 strpbrk() is C-specific, use regular expressions instead,
1368 strrchr() is C-specific, see L<perlfunc/rindex> instead.
1372 strspn() is C-specific, use regular expressions instead,
1377 This is identical to Perl's builtin C<index()> function,
1378 see L<perlfunc/index>.
1382 String to double translation. Returns the parsed number and the number
1383 of characters in the unparsed portion of the string. Truly
1384 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1385 error, so clear $! before calling strtod. However, non-POSIX systems
1386 may not check for overflow, and therefore will never set $!.
1388 strtod should respect any POSIX I<setlocale()> settings.
1390 To parse a string $str as a floating point number use
1393 ($num, $n_unparsed) = POSIX::strtod($str);
1395 The second returned item and $! can be used to check for valid input:
1397 if (($str eq '') || ($n_unparsed != 0) || $!) {
1398 die "Non-numeric input $str" . ($! ? ": $!\n" : "\n");
1401 When called in a scalar context strtod returns the parsed number.
1405 strtok() is C-specific, use regular expressions instead, see
1406 L<perlre>, or L<perlfunc/split>.
1410 String to (long) integer translation. Returns the parsed number and
1411 the number of characters in the unparsed portion of the string. Truly
1412 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1413 error, so clear $! before calling strtol. However, non-POSIX systems
1414 may not check for overflow, and therefore will never set $!.
1416 strtol should respect any POSIX I<setlocale()> settings.
1418 To parse a string $str as a number in some base $base use
1421 ($num, $n_unparsed) = POSIX::strtol($str, $base);
1423 The base should be zero or between 2 and 36, inclusive. When the base
1424 is zero or omitted strtol will use the string itself to determine the
1425 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1426 octal; any other leading characters mean decimal. Thus, "1234" is
1427 parsed as a decimal number, "01234" as an octal number, and "0x1234"
1428 as a hexadecimal number.
1430 The second returned item and $! can be used to check for valid input:
1432 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1433 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1436 When called in a scalar context strtol returns the parsed number.
1440 String to unsigned (long) integer translation. strtoul() is identical
1441 to strtol() except that strtoul() only parses unsigned integers. See
1442 L</strtol> for details.
1444 Note: Some vendors supply strtod() and strtol() but not strtoul().
1445 Other vendors that do supply strtoul() parse "-1" as a valid value.
1449 String transformation. Returns the transformed string.
1451 $dst = POSIX::strxfrm( $src );
1453 Used in conjunction with the C<strcoll()> function, see L</strcoll>.
1455 Not really needed since Perl can do this transparently, see
1460 Retrieves values of system configurable variables.
1462 The following will get the machine's clock speed.
1464 $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1466 Returns C<undef> on failure.
1470 This is identical to Perl's builtin C<system()> function, see
1475 This is identical to the C function C<tan()>, returning the
1476 tangent of the numerical argument. See also L<Math::Trig>.
1480 This is identical to the C function C<tanh()>, returning the
1481 hyperbolic tangent of the numerical argument. See also L<Math::Trig>.
1485 This is similar to the C function C<tcdrain()> for draining
1486 the output queue of its argument stream.
1488 Returns C<undef> on failure.
1492 This is similar to the C function C<tcflow()> for controlling
1493 the flow of its argument stream.
1495 Returns C<undef> on failure.
1499 This is similar to the C function C<tcflush()> for flushing
1500 the I/O buffers of its argument stream.
1502 Returns C<undef> on failure.
1506 This is identical to the C function C<tcgetpgrp()> for returning the
1507 process group identifier of the foreground process group of the controlling
1512 This is similar to the C function C<tcsendbreak()> for sending
1513 a break on its argument stream.
1515 Returns C<undef> on failure.
1519 This is similar to the C function C<tcsetpgrp()> for setting the
1520 process group identifier of the foreground process group of the controlling
1523 Returns C<undef> on failure.
1527 This is identical to Perl's builtin C<time()> function
1528 for returning the number of seconds since the epoch
1529 (whatever it is for the system), see L<perlfunc/time>.
1533 The times() function returns elapsed realtime since some point in the past
1534 (such as system startup), user and system times for this process, and user
1535 and system times used by child processes. All times are returned in clock
1538 ($realtime, $user, $system, $cuser, $csystem)
1541 Note: Perl's builtin C<times()> function returns four values, measured in
1546 Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
1550 Returns a name for a temporary file.
1552 $tmpfile = POSIX::tmpnam();
1554 For security reasons, which are probably detailed in your system's
1555 documentation for the C library tmpnam() function, this interface
1556 should not be used; instead see L<File::Temp>.
1560 This is identical to the C function, except that it can apply to a single
1561 character or to a whole string. Consider using the C<lc()> function,
1562 see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
1567 This is identical to the C function, except that it can apply to a single
1568 character or to a whole string. Consider using the C<uc()> function,
1569 see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
1574 This is identical to the C function C<ttyname()> for returning the
1575 name of the current terminal.
1579 Retrieves the time conversion information from the C<tzname> variable.
1582 ($std, $dst) = POSIX::tzname();
1586 This is identical to the C function C<tzset()> for setting
1587 the current timezone based on the environment variable C<TZ>,
1588 to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
1593 This is identical to Perl's builtin C<umask()> function
1594 for setting (and querying) the file creation permission mask,
1595 see L<perlfunc/umask>.
1599 Get name of current operating system.
1601 ($sysname, $nodename, $release, $version, $machine)
1604 Note that the actual meanings of the various fields are not
1605 that well standardized, do not expect any great portability.
1606 The C<$sysname> might be the name of the operating system,
1607 the C<$nodename> might be the name of the host, the C<$release>
1608 might be the (major) release number of the operating system,
1609 the C<$version> might be the (minor) release number of the
1610 operating system, and the C<$machine> might be a hardware identifier.
1615 Use method C<IO::Handle::ungetc()> instead.
1619 This is identical to Perl's builtin C<unlink()> function
1620 for removing files, see L<perlfunc/unlink>.
1624 This is identical to Perl's builtin C<utime()> function
1625 for changing the time stamps of files and directories,
1626 see L<perlfunc/utime>.
1630 vfprintf() is C-specific, see L<perlfunc/printf> instead.
1634 vprintf() is C-specific, see L<perlfunc/printf> instead.
1638 vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
1642 This is identical to Perl's builtin C<wait()> function,
1643 see L<perlfunc/wait>.
1647 Wait for a child process to change state. This is identical to Perl's
1648 builtin C<waitpid()> function, see L<perlfunc/waitpid>.
1650 $pid = POSIX::waitpid( -1, POSIX::WNOHANG );
1651 print "status = ", ($? / 256), "\n";
1655 This is identical to the C function C<wcstombs()>.
1656 Perl does not have any support for the wide and multibyte
1657 characters of the C standards, so this might be a rather
1662 This is identical to the C function C<wctomb()>.
1663 Perl does not have any support for the wide and multibyte
1664 characters of the C standards, so this might be a rather
1669 Write to a file. This uses file descriptors such as those obtained by
1670 calling C<POSIX::open>.
1672 $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
1674 $bytes = POSIX::write( $fd, $buf, 5 );
1676 Returns C<undef> on failure.
1678 See also L<perlfunc/syswrite>.
1684 =head2 POSIX::SigAction
1690 Creates a new C<POSIX::SigAction> object which corresponds to the C
1691 C<struct sigaction>. This object will be destroyed automatically when
1692 it is no longer needed. The first parameter is the handler, a sub
1693 reference. The second parameter is a C<POSIX::SigSet> object, it
1694 defaults to the empty set. The third parameter contains the
1695 C<sa_flags>, it defaults to 0.
1697 $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
1698 $sigaction = POSIX::SigAction->new(
1699 \&handler, $sigset, &POSIX::SA_NOCLDSTOP
1702 This C<POSIX::SigAction> object is intended for use with the C<POSIX::sigaction()>
1715 accessor functions to get/set the values of a SigAction object.
1717 $sigset = $sigaction->mask;
1718 $sigaction->flags(&POSIX::SA_RESTART);
1722 accessor function for the "safe signals" flag of a SigAction object; see
1723 L<perlipc> for general information on safe (a.k.a. "deferred") signals. If
1724 you wish to handle a signal safely, use this accessor to set the "safe" flag
1725 in the C<POSIX::SigAction> object:
1727 $sigaction->safe(1);
1729 You may also examine the "safe" flag on the output action object which is
1730 filled in when given as the third parameter to C<POSIX::sigaction()>:
1732 sigaction(SIGINT, $new_action, $old_action);
1733 if ($old_action->safe) {
1734 # previous SIGINT handler used safe signals
1745 A hash of the POSIX realtime signal handlers. It is an extension of
1746 the standard %SIG, the $POSIX::SIGRT{SIGRTMIN} is roughly equivalent
1747 to $SIG{SIGRTMIN}, but the right POSIX moves (see below) are made with
1748 the POSIX::SigSet and POSIX::sigaction instead of accessing the %SIG.
1750 You can set the %POSIX::SIGRT elements to set the POSIX realtime
1751 signal handlers, use C<delete> and C<exists> on the elements, and use
1752 C<scalar> on the C<%POSIX::SIGRT> to find out how many POSIX realtime
1753 signals there are available (SIGRTMAX - SIGRTMIN + 1, the SIGRTMAX is
1754 a valid POSIX realtime signal).
1756 Setting the %SIGRT elements is equivalent to calling this:
1759 my ($rtsig, $handler, $flags) = @_;
1760 my $sigset = POSIX::SigSet($rtsig);
1761 my $sigact = POSIX::SigAction->new($handler,$sigset,$flags);
1762 sigaction($rtsig, $sigact);
1765 The flags default to zero, if you want something different you can
1766 either use C<local> on $POSIX::SigRt::SIGACTION_FLAGS, or you can
1767 derive from POSIX::SigRt and define your own C<new()> (the tied hash
1768 STORE method of the %SIGRT calls C<new($rtsig, $handler, $SIGACTION_FLAGS)>,
1769 where the $rtsig ranges from zero to SIGRTMAX - SIGRTMIN + 1).
1771 Just as with any signal, you can use sigaction($rtsig, undef, $oa) to
1772 retrieve the installed signal handler (or, rather, the signal action).
1774 B<NOTE:> whether POSIX realtime signals really work in your system, or
1775 whether Perl has been compiled so that it works with them, is outside
1780 Return the minimum POSIX realtime signal number available, or C<undef>
1781 if no POSIX realtime signals are available.
1785 Return the maximum POSIX realtime signal number available, or C<undef>
1786 if no POSIX realtime signals are available.
1790 =head2 POSIX::SigSet
1796 Create a new SigSet object. This object will be destroyed automatically
1797 when it is no longer needed. Arguments may be supplied to initialize the
1800 Create an empty set.
1802 $sigset = POSIX::SigSet->new;
1804 Create a set with SIGUSR1.
1806 $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
1810 Add a signal to a SigSet object.
1812 $sigset->addset( &POSIX::SIGUSR2 );
1814 Returns C<undef> on failure.
1818 Remove a signal from the SigSet object.
1820 $sigset->delset( &POSIX::SIGUSR2 );
1822 Returns C<undef> on failure.
1826 Initialize the SigSet object to be empty.
1828 $sigset->emptyset();
1830 Returns C<undef> on failure.
1834 Initialize the SigSet object to include all signals.
1838 Returns C<undef> on failure.
1842 Tests the SigSet object to see if it contains a specific signal.
1844 if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
1845 print "contains SIGUSR1\n";
1850 =head2 POSIX::Termios
1856 Create a new Termios object. This object will be destroyed automatically
1857 when it is no longer needed. A Termios object corresponds to the termios
1858 C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
1859 and setattr() sets a file descriptor's parameters to match Termios' contents.
1861 $termios = POSIX::Termios->new;
1865 Get terminal control attributes.
1867 Obtain the attributes for stdin.
1869 $termios->getattr( 0 ) # Recommended for clarity.
1872 Obtain the attributes for stdout.
1874 $termios->getattr( 1 )
1876 Returns C<undef> on failure.
1880 Retrieve a value from the c_cc field of a termios object. The c_cc field is
1881 an array so an index must be specified.
1883 $c_cc[1] = $termios->getcc(1);
1887 Retrieve the c_cflag field of a termios object.
1889 $c_cflag = $termios->getcflag;
1893 Retrieve the c_iflag field of a termios object.
1895 $c_iflag = $termios->getiflag;
1899 Retrieve the input baud rate.
1901 $ispeed = $termios->getispeed;
1905 Retrieve the c_lflag field of a termios object.
1907 $c_lflag = $termios->getlflag;
1911 Retrieve the c_oflag field of a termios object.
1913 $c_oflag = $termios->getoflag;
1917 Retrieve the output baud rate.
1919 $ospeed = $termios->getospeed;
1923 Set terminal control attributes.
1925 Set attributes immediately for stdout.
1927 $termios->setattr( 1, &POSIX::TCSANOW );
1929 Returns C<undef> on failure.
1933 Set a value in the c_cc field of a termios object. The c_cc field is an
1934 array so an index must be specified.
1936 $termios->setcc( &POSIX::VEOF, 1 );
1940 Set the c_cflag field of a termios object.
1942 $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
1946 Set the c_iflag field of a termios object.
1948 $termios->setiflag( $c_iflag | &POSIX::BRKINT );
1952 Set the input baud rate.
1954 $termios->setispeed( &POSIX::B9600 );
1956 Returns C<undef> on failure.
1960 Set the c_lflag field of a termios object.
1962 $termios->setlflag( $c_lflag | &POSIX::ECHO );
1966 Set the c_oflag field of a termios object.
1968 $termios->setoflag( $c_oflag | &POSIX::OPOST );
1972 Set the output baud rate.
1974 $termios->setospeed( &POSIX::B9600 );
1976 Returns C<undef> on failure.
1978 =item Baud rate values
1980 B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
1982 =item Terminal interface values
1984 TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
1986 =item c_cc field values
1988 VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
1990 =item c_cflag field values
1992 CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
1994 =item c_iflag field values
1996 BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
1998 =item c_lflag field values
2000 ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
2002 =item c_oflag field values
2008 =head1 PATHNAME CONSTANTS
2014 _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX
2015 _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE
2019 =head1 POSIX CONSTANTS
2025 _POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL
2026 _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX
2027 _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX
2028 _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX
2029 _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
2033 =head1 SYSTEM CONFIGURATION
2039 _SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX
2040 _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX
2051 E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
2052 EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
2053 EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
2054 EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
2055 ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
2056 ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
2057 ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
2058 EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
2059 ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
2060 ETXTBSY EUSERS EWOULDBLOCK EXDEV
2070 FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK
2071 F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK
2072 O_RDONLY O_RDWR O_TRUNC O_WRONLY
2082 DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN
2083 DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX
2084 FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX
2085 FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP
2086 LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP
2096 ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX
2097 LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX
2098 PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX
2099 UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
2109 LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
2129 SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
2130 SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
2131 SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
2132 SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
2143 S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH
2144 S_IWUSR S_IXGRP S_IXOTH S_IXUSR
2148 S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
2158 EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
2168 BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
2178 CLK_TCK CLOCKS_PER_SEC
2188 R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
2204 Do not suspend the calling process until a child process
2205 changes state but instead return immediately.
2209 Catch stopped child processes.
2215 WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
2221 WIFEXITED(${^CHILD_ERROR_NATIVE}) returns true if the child process
2222 exited normally (C<exit()> or by falling off the end of C<main()>)
2226 WEXITSTATUS(${^CHILD_ERROR_NATIVE}) returns the normal exit status of
2227 the child process (only meaningful if WIFEXITED(${^CHILD_ERROR_NATIVE})
2232 WIFSIGNALED(${^CHILD_ERROR_NATIVE}) returns true if the child process
2233 terminated because of a signal
2237 WTERMSIG(${^CHILD_ERROR_NATIVE}) returns the signal the child process
2238 terminated for (only meaningful if WIFSIGNALED(${^CHILD_ERROR_NATIVE})
2243 WIFSTOPPED(${^CHILD_ERROR_NATIVE}) returns true if the child process is
2244 currently stopped (can happen only if you specified the WUNTRACED flag
2249 WSTOPSIG(${^CHILD_ERROR_NATIVE}) returns the signal the child process
2250 was stopped for (only meaningful if WIFSTOPPED(${^CHILD_ERROR_NATIVE})