Track /etc/gitconfig
[msysgit/mtrensch.git] / lib / perl5 / 5.8.8 / msys / POSIX.pod
blob17df7124e57194e9d8f9c0db717621e3b7776cac
1 =head1 NAME
3 POSIX - Perl interface to IEEE Std 1003.1
5 =head1 SYNOPSIS
7     use POSIX;
8     use POSIX qw(setsid);
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
18 =head1 DESCRIPTION
20 The POSIX module permits you to access all (or nearly all) the standard
21 POSIX 1003.1 identifiers.  Many of these identifiers have been given Perl-ish
22 interfaces.
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>).
31 This document gives a condensed list of the features available in the POSIX
32 module.  Consult your operating system's manpages for general information on
33 most features.  Consult L<perlfunc> for functions which are noted as being
34 identical to Perl's builtin functions.
36 The first section describes POSIX functions from the 1003.1 specification.
37 The second section describes some classes for signal objects, TTY objects,
38 and other miscellaneous objects.  The remaining sections list various
39 constants and macros in an organization which roughly follows IEEE Std
40 1003.1b-1993.
42 =head1 NOTE
44 The POSIX module is probably the most complex Perl module supplied with
45 the standard distribution.  It incorporates autoloading, namespace games,
46 and dynamic loading of code that's in Perl, C, or both.  It's a great
47 source of wisdom.
49 =head1 CAVEATS 
51 A few functions are not implemented because they are C specific.  If you
52 attempt to call these, they will print a message telling you that they
53 aren't implemented, and suggest using the Perl equivalent should one
54 exist.  For example, trying to access the setjmp() call will elicit the
55 message "setjmp() is C-specific: use eval {} instead".
57 Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
58 are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
59 For example, one vendor may not define EDEADLK, or the semantics of the
60 errno values set by open(2) might not be quite right.  Perl does not
61 attempt to verify POSIX compliance.  That means you can currently
62 successfully say "use POSIX",  and then later in your program you find
63 that your vendor has been lax and there's no usable ICANON macro after
64 all.  This could be construed to be a bug.
66 =head1 FUNCTIONS
68 =over 8
70 =item _exit
72 This is identical to the C function C<_exit()>.  It exits the program
73 immediately which means among other things buffered I/O is B<not> flushed.
75 Note that when using threads and in Linux this is B<not> a good way to
76 exit a thread because in Linux processes and threads are kind of the
77 same thing (Note: while this is the situation in early 2003 there are
78 projects under way to have threads with more POSIXly semantics in Linux).
79 If you want not to return from a thread, detach the thread.
81 =item abort
83 This is identical to the C function C<abort()>.  It terminates the
84 process with a C<SIGABRT> signal unless caught by a signal handler or
85 if the handler does not return normally (it e.g.  does a C<longjmp>).
87 =item abs
89 This is identical to Perl's builtin C<abs()> function, returning
90 the absolute value of its numerical argument.
92 =item access
94 Determines the accessibility of a file.
96         if( POSIX::access( "/", &POSIX::R_OK ) ){
97                 print "have read permission\n";
98         }
100 Returns C<undef> on failure.  Note: do not use C<access()> for
101 security purposes.  Between the C<access()> call and the operation
102 you are preparing for the permissions might change: a classic
103 I<race condition>.
105 =item acos
107 This is identical to the C function C<acos()>, returning
108 the arcus cosine of its numerical argument.  See also L<Math::Trig>.
110 =item alarm
112 This is identical to Perl's builtin C<alarm()> function,
113 either for arming or disarming the C<SIGARLM> timer.
115 =item asctime
117 This is identical to the C function C<asctime()>.  It returns
118 a string of the form
120         "Fri Jun  2 18:22:13 2000\n\0"
122 and it is called thusly
124         $asctime = asctime($sec, $min, $hour, $mday, $mon, $year,
125                            $wday, $yday, $isdst);
127 The C<$mon> is zero-based: January equals C<0>.  The C<$year> is
128 1900-based: 2001 equals C<101>.  The C<$wday>, C<$yday>, and C<$isdst>
129 default to zero (and the first two are usually ignored anyway).
131 =item asin
133 This is identical to the C function C<asin()>, returning
134 the arcus sine of its numerical argument.  See also L<Math::Trig>.
136 =item assert
138 Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
139 to achieve similar things.
141 =item atan
143 This is identical to the C function C<atan()>, returning the
144 arcus tangent of its numerical argument.  See also L<Math::Trig>.
146 =item atan2
148 This is identical to Perl's builtin C<atan2()> function, returning
149 the arcus tangent defined by its two numerical arguments, the I<y>
150 coordinate and the I<x> coordinate.  See also L<Math::Trig>.
152 =item atexit
154 atexit() is C-specific: use C<END {}> instead, see L<perlsub>.
156 =item atof
158 atof() 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.
161 =item atoi
163 atoi() is C-specific.  Perl converts strings to numbers transparently.
164 If you need to force a scalar to a number, add a zero to it.
165 If you need to have just the integer part, see L<perlfunc/int>.
167 =item atol
169 atol() is C-specific.  Perl converts strings to numbers transparently.
170 If you need to force a scalar to a number, add a zero to it.
171 If you need to have just the integer part, see L<perlfunc/int>.
173 =item bsearch
175 bsearch() not supplied.  For doing binary search on wordlists,
176 see L<Search::Dict>.
178 =item calloc
180 calloc() is C-specific.  Perl does memory management transparently.
182 =item ceil
184 This is identical to the C function C<ceil()>, returning the smallest
185 integer value greater than or equal to the given numerical argument.
187 =item chdir
189 This is identical to Perl's builtin C<chdir()> function, allowing
190 one to change the working (default) directory, see L<perlfunc/chdir>.
192 =item chmod
194 This is identical to Perl's builtin C<chmod()> function, allowing
195 one to change file and directory permissions, see L<perlfunc/chmod>.
197 =item chown
199 This is identical to Perl's builtin C<chown()> function, allowing one
200 to change file and directory owners and groups, see L<perlfunc/chown>.
202 =item clearerr
204 Use the method C<IO::Handle::clearerr()> instead, to reset the error
205 state (if any) and EOF state (if any) of the given stream.
207 =item clock
209 This is identical to the C function C<clock()>, returning the
210 amount of spent processor time in microseconds.
212 =item close
214 Close the file.  This uses file descriptors such as those obtained by calling
215 C<POSIX::open>.
217         $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
218         POSIX::close( $fd );
220 Returns C<undef> on failure.
222 See also L<perlfunc/close>.
224 =item closedir
226 This is identical to Perl's builtin C<closedir()> function for closing
227 a directory handle, see L<perlfunc/closedir>.
229 =item cos
231 This is identical to Perl's builtin C<cos()> function, for returning
232 the cosine of its numerical argument, see L<perlfunc/cos>.
233 See also L<Math::Trig>.
235 =item cosh
237 This is identical to the C function C<cosh()>, for returning
238 the hyperbolic cosine of its numeric argument.  See also L<Math::Trig>.
240 =item creat
242 Create a new file.  This returns a file descriptor like the ones returned by
243 C<POSIX::open>.  Use C<POSIX::close> to close the file.
245         $fd = POSIX::creat( "foo", 0611 );
246         POSIX::close( $fd );
248 See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
250 =item ctermid
252 Generates the path name for the controlling terminal.
254         $path = POSIX::ctermid();
256 =item ctime
258 This is identical to the C function C<ctime()> and equivalent
259 to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
261 =item cuserid
263 Get the login name of the owner of the current process.
265         $name = POSIX::cuserid();
267 =item difftime
269 This is identical to the C function C<difftime()>, for returning
270 the time difference (in seconds) between two times (as returned
271 by C<time()>), see L</time>.
273 =item div
275 div() is C-specific, use L<perlfunc/int> on the usual C</> division and
276 the modulus C<%>.
278 =item dup
280 This is similar to the C function C<dup()>, for duplicating a file
281 descriptor.
283 This uses file descriptors such as those obtained by calling
284 C<POSIX::open>.
286 Returns C<undef> on failure.
288 =item dup2
290 This is similar to the C function C<dup2()>, for duplicating a file
291 descriptor to an another known file descriptor.
293 This uses file descriptors such as those obtained by calling
294 C<POSIX::open>.
296 Returns C<undef> on failure.
298 =item errno
300 Returns the value of errno.
302         $errno = POSIX::errno();
304 This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
306 =item execl
308 execl() is C-specific, see L<perlfunc/exec>.
310 =item execle
312 execle() is C-specific, see L<perlfunc/exec>.
314 =item execlp
316 execlp() is C-specific, see L<perlfunc/exec>.
318 =item execv
320 execv() is C-specific, see L<perlfunc/exec>.
322 =item execve
324 execve() is C-specific, see L<perlfunc/exec>.
326 =item execvp
328 execvp() is C-specific, see L<perlfunc/exec>.
330 =item exit
332 This is identical to Perl's builtin C<exit()> function for exiting the
333 program, see L<perlfunc/exit>.
335 =item exp
337 This is identical to Perl's builtin C<exp()> function for
338 returning the exponent (I<e>-based) of the numerical argument,
339 see L<perlfunc/exp>.
341 =item fabs
343 This is identical to Perl's builtin C<abs()> function for returning
344 the absolute value of the numerical argument, see L<perlfunc/abs>.
346 =item fclose
348 Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
350 =item fcntl
352 This is identical to Perl's builtin C<fcntl()> function,
353 see L<perlfunc/fcntl>.
355 =item fdopen
357 Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
359 =item feof
361 Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
363 =item ferror
365 Use method C<IO::Handle::error()> instead.
367 =item fflush
369 Use method C<IO::Handle::flush()> instead.
370 See also L<perlvar/$OUTPUT_AUTOFLUSH>.
372 =item fgetc
374 Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
376 =item fgetpos
378 Use method C<IO::Seekable::getpos()> instead, or see L<L/seek>.
380 =item fgets
382 Use method C<IO::Handle::gets()> instead.  Similar to E<lt>E<gt>, also known
383 as L<perlfunc/readline>.
385 =item fileno
387 Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
389 =item floor
391 This is identical to the C function C<floor()>, returning the largest
392 integer value less than or equal to the numerical argument.
394 =item fmod
396 This is identical to the C function C<fmod()>.
398         $r = fmod($x, $y);
400 It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
401 The C<$r> has the same sign as C<$x> and magnitude (absolute value)
402 less than the magnitude of C<$y>.
404 =item fopen
406 Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
408 =item fork
410 This is identical to Perl's builtin C<fork()> function
411 for duplicating the current process, see L<perlfunc/fork>
412 and L<perlfork> if you are in Windows.
414 =item fpathconf
416 Retrieves the value of a configurable limit on a file or directory.  This
417 uses file descriptors such as those obtained by calling C<POSIX::open>.
419 The following will determine the maximum length of the longest allowable
420 pathname on the filesystem which holds C</var/foo>.
422         $fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY );
423         $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX );
425 Returns C<undef> on failure.
427 =item fprintf
429 fprintf() is C-specific, see L<perlfunc/printf> instead.
431 =item fputc
433 fputc() is C-specific, see L<perlfunc/print> instead.
435 =item fputs
437 fputs() is C-specific, see L<perlfunc/print> instead.
439 =item fread
441 fread() is C-specific, see L<perlfunc/read> instead.
443 =item free
445 free() is C-specific.  Perl does memory management transparently.
447 =item freopen
449 freopen() is C-specific, see L<perlfunc/open> instead.
451 =item frexp
453 Return the mantissa and exponent of a floating-point number.
455         ($mantissa, $exponent) = POSIX::frexp( 1.234e56 );
457 =item fscanf
459 fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead.
461 =item fseek
463 Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
465 =item fsetpos
467 Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
469 =item fstat
471 Get file status.  This uses file descriptors such as those obtained by
472 calling C<POSIX::open>.  The data returned is identical to the data from
473 Perl's builtin C<stat> function.
475         $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
476         @stats = POSIX::fstat( $fd );
478 =item fsync
480 Use method C<IO::Handle::sync()> instead.
482 =item ftell
484 Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
486 =item fwrite
488 fwrite() is C-specific, see L<perlfunc/print> instead.
490 =item getc
492 This is identical to Perl's builtin C<getc()> function,
493 see L<perlfunc/getc>.
495 =item getchar
497 Returns one character from STDIN.  Identical to Perl's C<getc()>,
498 see L<perlfunc/getc>.
500 =item getcwd
502 Returns the name of the current working directory.
503 See also L<Cwd>.
505 =item getegid
507 Returns the effective group identifier.  Similar to Perl' s builtin
508 variable C<$(>, see L<perlvar/$EGID>.
510 =item getenv
512 Returns the value of the specified environment variable.
513 The same information is available through the C<%ENV> array.
515 =item geteuid
517 Returns the effective user identifier.  Identical to Perl's builtin C<$E<gt>>
518 variable, see L<perlvar/$EUID>.
520 =item getgid
522 Returns the user's real group identifier.  Similar to Perl's builtin
523 variable C<$)>, see L<perlvar/$GID>.
525 =item getgrgid
527 This is identical to Perl's builtin C<getgrgid()> function for
528 returning group entries by group identifiers, see
529 L<perlfunc/getgrgid>.
531 =item getgrnam
533 This is identical to Perl's builtin C<getgrnam()> function for
534 returning group entries by group names, see L<perlfunc/getgrnam>.
536 =item getgroups
538 Returns the ids of the user's supplementary groups.  Similar to Perl's
539 builtin variable C<$)>, see L<perlvar/$GID>.
541 =item getlogin
543 This is identical to Perl's builtin C<getlogin()> function for
544 returning the user name associated with the current session, see
545 L<perlfunc/getlogin>.
547 =item getpgrp
549 This is identical to Perl's builtin C<getpgrp()> function for
550 returning the process group identifier of the current process, see
551 L<perlfunc/getpgrp>.
553 =item getpid
555 Returns the process identifier.  Identical to Perl's builtin
556 variable C<$$>, see L<perlvar/$PID>.
558 =item getppid
560 This is identical to Perl's builtin C<getppid()> function for
561 returning the process identifier of the parent process of the current
562 process , see L<perlfunc/getppid>.
564 =item getpwnam
566 This is identical to Perl's builtin C<getpwnam()> function for
567 returning user entries by user names, see L<perlfunc/getpwnam>.
569 =item getpwuid
571 This is identical to Perl's builtin C<getpwuid()> function for
572 returning user entries by user identifiers, see L<perlfunc/getpwuid>.
574 =item gets
576 Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known
577 as the C<readline()> function, see L<perlfunc/readline>.
579 B<NOTE>: if you have C programs that still use C<gets()>, be very
580 afraid.  The C<gets()> function is a source of endless grief because
581 it has no buffer overrun checks.  It should B<never> be used.  The
582 C<fgets()> function should be preferred instead.
584 =item getuid
586 Returns the user's identifier.  Identical to Perl's builtin C<$E<lt>> variable,
587 see L<perlvar/$UID>.
589 =item gmtime
591 This is identical to Perl's builtin C<gmtime()> function for
592 converting seconds since the epoch to a date in Greenwich Mean Time,
593 see L<perlfunc/gmtime>.
595 =item isalnum
597 This is identical to the C function, except that it can apply to a
598 single character or to a whole string.  Note that locale settings may
599 affect what characters are considered C<isalnum>.  Does not work on
600 Unicode characters code point 256 or higher.  Consider using regular
601 expressions and the C</[[:alnum:]]/> construct instead, or possibly
602 the C</\w/> construct.
604 =item isalpha
606 This is identical to the C function, except that it can apply to
607 a single character or to a whole string.  Note that locale settings
608 may affect what characters are considered C<isalpha>.  Does not work
609 on Unicode characters code point 256 or higher.  Consider using regular
610 expressions and the C</[[:alpha:]]/> construct instead.
612 =item isatty
614 Returns a boolean indicating whether the specified filehandle is connected
615 to a tty.  Similar to the C<-t> operator, see L<perlfunc/-X>.
617 =item iscntrl
619 This is identical to the C function, except that it can apply to
620 a single character or to a whole string.  Note that locale settings
621 may affect what characters are considered C<iscntrl>.  Does not work
622 on Unicode characters code point 256 or higher.  Consider using regular
623 expressions and the C</[[:cntrl:]]/> construct instead.
625 =item isdigit
627 This is identical to the C function, except that it can apply to
628 a single character or to a whole string.  Note that locale settings
629 may affect what characters are considered C<isdigit> (unlikely, but
630 still possible). Does not work on Unicode characters code point 256
631 or higher.  Consider using regular expressions and the C</[[:digit:]]/>
632 construct instead, or the C</\d/> construct.
634 =item isgraph
636 This is identical to the C function, except that it can apply to
637 a single character or to a whole string.  Note that locale settings
638 may affect what characters are considered C<isgraph>.  Does not work
639 on Unicode characters code point 256 or higher.  Consider using regular
640 expressions and the C</[[:graph:]]/> construct instead.
642 =item islower
644 This is identical to the C function, except that it can apply to
645 a single character or to a whole string.  Note that locale settings
646 may affect what characters are considered C<islower>.  Does not work
647 on Unicode characters code point 256 or higher.  Consider using regular
648 expressions and the C</[[:lower:]]/> construct instead.  Do B<not> use
649 C</[a-z]/>.
651 =item isprint
653 This is identical to the C function, except that it can apply to
654 a single character or to a whole string.  Note that locale settings
655 may affect what characters are considered C<isprint>.  Does not work
656 on Unicode characters code point 256 or higher.  Consider using regular
657 expressions and the C</[[:print:]]/> construct instead.
659 =item ispunct
661 This is identical to the C function, except that it can apply to
662 a single character or to a whole string.  Note that locale settings
663 may affect what characters are considered C<ispunct>.  Does not work
664 on Unicode characters code point 256 or higher.  Consider using regular
665 expressions and the C</[[:punct:]]/> construct instead.
667 =item isspace
669 This is identical to the C function, except that it can apply to
670 a single character or to a whole string.  Note that locale settings
671 may affect what characters are considered C<isspace>.  Does not work
672 on Unicode characters code point 256 or higher.  Consider using regular
673 expressions and the C</[[:space:]]/> construct instead, or the C</\s/>
674 construct.  (Note that C</\s/> and C</[[:space:]]/> are slightly
675 different in that C</[[:space:]]/> can normally match a vertical tab,
676 while C</\s/> does not.)
678 =item isupper
680 This is identical to the C function, except that it can apply to
681 a single character or to a whole string.  Note that locale settings
682 may affect what characters are considered C<isupper>.  Does not work
683 on Unicode characters code point 256 or higher.  Consider using regular
684 expressions and the C</[[:upper:]]/> construct instead.  Do B<not> use
685 C</[A-Z]/>.
687 =item isxdigit
689 This is identical to the C function, except that it can apply to a single
690 character or to a whole string.  Note that locale settings may affect what
691 characters are considered C<isxdigit> (unlikely, but still possible).
692 Does not work on Unicode characters code point 256 or higher.
693 Consider using regular expressions and the C</[[:xdigit:]]/>
694 construct instead, or simply C</[0-9a-f]/i>.
696 =item kill
698 This is identical to Perl's builtin C<kill()> function for sending
699 signals to processes (often to terminate them), see L<perlfunc/kill>.
701 =item labs
703 (For returning absolute values of long integers.)
704 labs() is C-specific, see L<perlfunc/abs> instead.
706 =item ldexp
708 This is identical to the C function C<ldexp()>
709 for multiplying floating point numbers with powers of two.
711         $x_quadrupled = POSIX::ldexp($x, 2);
713 =item ldiv
715 (For computing dividends of long integers.)
716 ldiv() is C-specific, use C</> and C<int()> instead.
718 =item link
720 This is identical to Perl's builtin C<link()> function
721 for creating hard links into files, see L<perlfunc/link>.
723 =item localeconv
725 Get numeric formatting information.  Returns a reference to a hash
726 containing the current locale formatting values.
728 Here is how to query the database for the B<de> (Deutsch or German) locale.
730         $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
731         print "Locale = $loc\n";
732         $lconv = POSIX::localeconv();
733         print "decimal_point    = ", $lconv->{decimal_point},   "\n";
734         print "thousands_sep    = ", $lconv->{thousands_sep},   "\n";
735         print "grouping = ", $lconv->{grouping},        "\n";
736         print "int_curr_symbol  = ", $lconv->{int_curr_symbol}, "\n";
737         print "currency_symbol  = ", $lconv->{currency_symbol}, "\n";
738         print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n";
739         print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n";
740         print "mon_grouping     = ", $lconv->{mon_grouping},    "\n";
741         print "positive_sign    = ", $lconv->{positive_sign},   "\n";
742         print "negative_sign    = ", $lconv->{negative_sign},   "\n";
743         print "int_frac_digits  = ", $lconv->{int_frac_digits}, "\n";
744         print "frac_digits      = ", $lconv->{frac_digits},     "\n";
745         print "p_cs_precedes    = ", $lconv->{p_cs_precedes},   "\n";
746         print "p_sep_by_space   = ", $lconv->{p_sep_by_space},  "\n";
747         print "n_cs_precedes    = ", $lconv->{n_cs_precedes},   "\n";
748         print "n_sep_by_space   = ", $lconv->{n_sep_by_space},  "\n";
749         print "p_sign_posn      = ", $lconv->{p_sign_posn},     "\n";
750         print "n_sign_posn      = ", $lconv->{n_sign_posn},     "\n";
752 =item localtime
754 This is identical to Perl's builtin C<localtime()> function for
755 converting seconds since the epoch to a date see L<perlfunc/localtime>.
757 =item log
759 This is identical to Perl's builtin C<log()> function,
760 returning the natural (I<e>-based) logarithm of the numerical argument,
761 see L<perlfunc/log>.
763 =item log10
765 This is identical to the C function C<log10()>,
766 returning the 10-base logarithm of the numerical argument.
767 You can also use
769     sub log10 { log($_[0]) / log(10) }
773     sub log10 { log($_[0]) / 2.30258509299405 }  
777     sub log10 { log($_[0]) * 0.434294481903252 }
779 =item longjmp
781 longjmp() is C-specific: use L<perlfunc/die> instead.
783 =item lseek
785 Move the file's read/write position.  This uses file descriptors such as
786 those obtained by calling C<POSIX::open>.
788         $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
789         $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
791 Returns C<undef> on failure.
793 =item malloc
795 malloc() is C-specific.  Perl does memory management transparently.
797 =item mblen
799 This is identical to the C function C<mblen()>.
800 Perl does not have any support for the wide and multibyte
801 characters of the C standards, so this might be a rather 
802 useless function.
804 =item mbstowcs
806 This is identical to the C function C<mbstowcs()>.
807 Perl does not have any support for the wide and multibyte
808 characters of the C standards, so this might be a rather 
809 useless function.
811 =item mbtowc
813 This is identical to the C function C<mbtowc()>.
814 Perl does not have any support for the wide and multibyte
815 characters of the C standards, so this might be a rather 
816 useless function.
818 =item memchr
820 memchr() is C-specific, see L<perlfunc/index> instead.
822 =item memcmp
824 memcmp() is C-specific, use C<eq> instead, see L<perlop>.
826 =item memcpy
828 memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
830 =item memmove
832 memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
834 =item memset
836 memset() is C-specific, use C<x> instead, see L<perlop>.
838 =item mkdir
840 This is identical to Perl's builtin C<mkdir()> function
841 for creating directories, see L<perlfunc/mkdir>.
843 =item mkfifo
845 This is similar to the C function C<mkfifo()> for creating
846 FIFO special files.
848         if (mkfifo($path, $mode)) { ....
850 Returns C<undef> on failure.  The C<$mode> is similar to the
851 mode of C<mkdir()>, see L<perlfunc/mkdir>.
853 =item mktime
855 Convert date/time info to a calendar time.
857 Synopsis:
859         mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
861 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
862 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1.  The
863 year (C<year>) is given in years since 1900.  I.e. The year 1995 is 95; the
864 year 2001 is 101.  Consult your system's C<mktime()> manpage for details
865 about these and the other arguments.
867 Calendar time for December 12, 1995, at 10:30 am.
869         $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
870         print "Date = ", POSIX::ctime($time_t);
872 Returns C<undef> on failure.
874 =item modf
876 Return the integral and fractional parts of a floating-point number.
878         ($fractional, $integral) = POSIX::modf( 3.14 );
880 =item nice
882 This is similar to the C function C<nice()>, for changing
883 the scheduling preference of the current process.  Positive
884 arguments mean more polite process, negative values more
885 needy process.  Normal user processes can only be more polite.
887 Returns C<undef> on failure.
889 =item offsetof
891 offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
893 =item open
895 Open a file for reading for writing.  This returns file descriptors, not
896 Perl filehandles.  Use C<POSIX::close> to close the file.
898 Open a file read-only with mode 0666.
900         $fd = POSIX::open( "foo" );
902 Open a file for read and write.
904         $fd = POSIX::open( "foo", &POSIX::O_RDWR );
906 Open a file for write, with truncation.
908         $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );
910 Create a new file with mode 0640.  Set up the file for writing.
912         $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );
914 Returns C<undef> on failure.
916 See also L<perlfunc/sysopen>.
918 =item opendir
920 Open a directory for reading.
922         $dir = POSIX::opendir( "/var" );
923         @files = POSIX::readdir( $dir );
924         POSIX::closedir( $dir );
926 Returns C<undef> on failure.
928 =item pathconf
930 Retrieves the value of a configurable limit on a file or directory.
932 The following will determine the maximum length of the longest allowable
933 pathname on the filesystem which holds C</var>.
935         $path_max = POSIX::pathconf( "/var", &POSIX::_PC_PATH_MAX );
937 Returns C<undef> on failure.
939 =item pause
941 This is similar to the C function C<pause()>, which suspends
942 the execution of the current process until a signal is received.
944 Returns C<undef> on failure.
946 =item perror
948 This is identical to the C function C<perror()>, which outputs to the
949 standard error stream the specified message followed by ": " and the
950 current error string.  Use the C<warn()> function and the C<$!>
951 variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
953 =item pipe
955 Create an interprocess channel.  This returns file descriptors like those
956 returned by C<POSIX::open>.
958         my ($read, $write) = POSIX::pipe();
959         POSIX::write( $write, "hello", 5 );
960         POSIX::read( $read, $buf, 5 );
962 See also L<perlfunc/pipe>.
964 =item pow
966 Computes C<$x> raised to the power C<$exponent>.
968         $ret = POSIX::pow( $x, $exponent );
970 You can also use the C<**> operator, see L<perlop>.
972 =item printf
974 Formats and prints the specified arguments to STDOUT.
975 See also L<perlfunc/printf>.
977 =item putc
979 putc() is C-specific, see L<perlfunc/print> instead.
981 =item putchar
983 putchar() is C-specific, see L<perlfunc/print> instead.
985 =item puts
987 puts() is C-specific, see L<perlfunc/print> instead.
989 =item qsort
991 qsort() is C-specific, see L<perlfunc/sort> instead.
993 =item raise
995 Sends the specified signal to the current process.
996 See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
998 =item rand
1000 C<rand()> is non-portable, see L<perlfunc/rand> instead.
1002 =item read
1004 Read from a file.  This uses file descriptors such as those obtained by
1005 calling C<POSIX::open>.  If the buffer C<$buf> is not large enough for the
1006 read then Perl will extend it to make room for the request.
1008         $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
1009         $bytes = POSIX::read( $fd, $buf, 3 );
1011 Returns C<undef> on failure.
1013 See also L<perlfunc/sysread>.
1015 =item readdir
1017 This is identical to Perl's builtin C<readdir()> function
1018 for reading directory entries, see L<perlfunc/readdir>.
1020 =item realloc
1022 realloc() is C-specific.  Perl does memory management transparently.
1024 =item remove
1026 This is identical to Perl's builtin C<unlink()> function
1027 for removing files, see L<perlfunc/unlink>.
1029 =item rename
1031 This is identical to Perl's builtin C<rename()> function
1032 for renaming files, see L<perlfunc/rename>.
1034 =item rewind
1036 Seeks to the beginning of the file.
1038 =item rewinddir
1040 This is identical to Perl's builtin C<rewinddir()> function for
1041 rewinding directory entry streams, see L<perlfunc/rewinddir>.
1043 =item rmdir
1045 This is identical to Perl's builtin C<rmdir()> function
1046 for removing (empty) directories, see L<perlfunc/rmdir>.
1048 =item scanf
1050 scanf() is C-specific, use E<lt>E<gt> and regular expressions instead,
1051 see L<perlre>.
1053 =item setgid
1055 Sets the real group identifier and the effective group identifier for
1056 this process.  Similar to assigning a value to the Perl's builtin
1057 C<$)> variable, see L<perlvar/$GID>, except that the latter
1058 will change only the real user identifier, and that the setgid()
1059 uses only a single numeric argument, as opposed to a space-separated
1060 list of numbers.
1062 =item setjmp
1064 C<setjmp()> is C-specific: use C<eval {}> instead,
1065 see L<perlfunc/eval>.
1067 =item setlocale
1069 Modifies and queries program's locale.  The following examples assume
1071         use POSIX qw(setlocale LC_ALL LC_CTYPE);
1073 has been issued.
1075 The following will set the traditional UNIX system locale behavior
1076 (the second argument C<"C">).
1078         $loc = setlocale( LC_ALL, "C" );
1080 The following will query the current LC_CTYPE category.  (No second
1081 argument means 'query'.)
1083         $loc = setlocale( LC_CTYPE );
1085 The following will set the LC_CTYPE behaviour according to the locale
1086 environment variables (the second argument C<"">).
1087 Please see your systems C<setlocale(3)> documentation for the locale
1088 environment variables' meaning or consult L<perllocale>.
1090         $loc = setlocale( LC_CTYPE, "" );
1092 The following will set the LC_COLLATE behaviour to Argentinian
1093 Spanish. B<NOTE>: The naming and availability of locales depends on
1094 your operating system. Please consult L<perllocale> for how to find
1095 out which locales are available in your system.
1097         $loc = setlocale( LC_ALL, "es_AR.ISO8859-1" );
1099 =item setpgid
1101 This is similar to the C function C<setpgid()> for
1102 setting the process group identifier of the current process.
1104 Returns C<undef> on failure.
1106 =item setsid
1108 This is identical to the C function C<setsid()> for
1109 setting the session identifier of the current process.
1111 =item setuid
1113 Sets the real user identifier and the effective user identifier for
1114 this process.  Similar to assigning a value to the Perl's builtin
1115 C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter
1116 will change only the real user identifier.
1118 =item sigaction
1120 Detailed signal management.  This uses C<POSIX::SigAction> objects for the
1121 C<action> and C<oldaction> arguments.  Consult your system's C<sigaction>
1122 manpage for details.
1124 Synopsis:
1126         sigaction(signal, action, oldaction = 0)
1128 Returns C<undef> on failure.  The C<signal> must be a number (like
1129 SIGHUP), not a string (like "SIGHUP"), though Perl does try hard
1130 to understand you.
1132 =item siglongjmp
1134 siglongjmp() is C-specific: use L<perlfunc/die> instead.
1136 =item sigpending
1138 Examine signals that are blocked and pending.  This uses C<POSIX::SigSet>
1139 objects for the C<sigset> argument.  Consult your system's C<sigpending>
1140 manpage for details.
1142 Synopsis:
1144         sigpending(sigset)
1146 Returns C<undef> on failure.
1148 =item sigprocmask
1150 Change and/or examine calling process's signal mask.  This uses
1151 C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
1152 Consult your system's C<sigprocmask> manpage for details.
1154 Synopsis:
1156         sigprocmask(how, sigset, oldsigset = 0)
1158 Returns C<undef> on failure.
1160 =item sigsetjmp
1162 C<sigsetjmp()> is C-specific: use C<eval {}> instead,
1163 see L<perlfunc/eval>.
1165 =item sigsuspend
1167 Install a signal mask and suspend process until signal arrives.  This uses
1168 C<POSIX::SigSet> objects for the C<signal_mask> argument.  Consult your
1169 system's C<sigsuspend> manpage for details.
1171 Synopsis:
1173         sigsuspend(signal_mask)
1175 Returns C<undef> on failure.
1177 =item sin
1179 This is identical to Perl's builtin C<sin()> function
1180 for returning the sine of the numerical argument,
1181 see L<perlfunc/sin>.  See also L<Math::Trig>.
1183 =item sinh
1185 This is identical to the C function C<sinh()>
1186 for returning the hyperbolic sine of the numerical argument.
1187 See also L<Math::Trig>.
1189 =item sleep
1191 This is functionally identical to Perl's builtin C<sleep()> function
1192 for suspending the execution of the current for process for certain
1193 number of seconds, see L<perlfunc/sleep>.  There is one significant 
1194 difference, however: C<POSIX::sleep()> returns the number of
1195 B<unslept> seconds, while the C<CORE::sleep()> returns the
1196 number of slept seconds.
1198 =item sprintf
1200 This is similar to Perl's builtin C<sprintf()> function
1201 for returning a string that has the arguments formatted as requested,
1202 see L<perlfunc/sprintf>.
1204 =item sqrt
1206 This is identical to Perl's builtin C<sqrt()> function.
1207 for returning the square root of the numerical argument,
1208 see L<perlfunc/sqrt>.
1210 =item srand
1212 Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
1214 =item sscanf
1216 sscanf() is C-specific, use regular expressions instead,
1217 see L<perlre>.
1219 =item stat
1221 This is identical to Perl's builtin C<stat()> function
1222 for returning information about files and directories.
1224 =item strcat
1226 strcat() is C-specific, use C<.=> instead, see L<perlop>.
1228 =item strchr
1230 strchr() is C-specific, see L<perlfunc/index> instead.
1232 =item strcmp
1234 strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
1236 =item strcoll
1238 This is identical to the C function C<strcoll()>
1239 for collating (comparing) strings transformed using
1240 the C<strxfrm()> function.  Not really needed since
1241 Perl can do this transparently, see L<perllocale>.
1243 =item strcpy
1245 strcpy() is C-specific, use C<=> instead, see L<perlop>.
1247 =item strcspn
1249 strcspn() is C-specific, use regular expressions instead,
1250 see L<perlre>.
1252 =item strerror
1254 Returns the error string for the specified errno.
1255 Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
1257 =item strftime
1259 Convert date and time information to string.  Returns the string.
1261 Synopsis:
1263         strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
1265 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
1266 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1.  The
1267 year (C<year>) is given in years since 1900.  I.e., the year 1995 is 95; the
1268 year 2001 is 101.  Consult your system's C<strftime()> manpage for details
1269 about these and the other arguments.
1271 If you want your code to be portable, your format (C<fmt>) argument
1272 should use only the conversion specifiers defined by the ANSI C
1273 standard (C89, to play safe).  These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
1274 But even then, the B<results> of some of the conversion specifiers are
1275 non-portable.  For example, the specifiers C<aAbBcpZ> change according
1276 to the locale settings of the user, and both how to set locales (the
1277 locale names) and what output to expect are non-standard.
1278 The specifier C<c> changes according to the timezone settings of the
1279 user and the timezone computation rules of the operating system.
1280 The C<Z> specifier is notoriously unportable since the names of
1281 timezones are non-standard. Sticking to the numeric specifiers is the
1282 safest route.
1284 The given arguments are made consistent as though by calling
1285 C<mktime()> before calling your system's C<strftime()> function,
1286 except that the C<isdst> value is not affected.
1288 The string for Tuesday, December 12, 1995.
1290         $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
1291         print "$str\n";
1293 =item strlen
1295 strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
1297 =item strncat
1299 strncat() is C-specific, use C<.=> instead, see L<perlop>.
1301 =item strncmp
1303 strncmp() is C-specific, use C<eq> instead, see L<perlop>.
1305 =item strncpy
1307 strncpy() is C-specific, use C<=> instead, see L<perlop>.
1309 =item strpbrk
1311 strpbrk() is C-specific, use regular expressions instead,
1312 see L<perlre>.
1314 =item strrchr
1316 strrchr() is C-specific, see L<perlfunc/rindex> instead.
1318 =item strspn
1320 strspn() is C-specific, use regular expressions instead,
1321 see L<perlre>.
1323 =item strstr
1325 This is identical to Perl's builtin C<index()> function,
1326 see L<perlfunc/index>.
1328 =item strtod
1330 String to double translation. Returns the parsed number and the number
1331 of characters in the unparsed portion of the string.  Truly
1332 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1333 error, so clear $! before calling strtod.  However, non-POSIX systems
1334 may not check for overflow, and therefore will never set $!.
1336 strtod should respect any POSIX I<setlocale()> settings.
1338 To parse a string $str as a floating point number use
1340     $! = 0;
1341     ($num, $n_unparsed) = POSIX::strtod($str);
1343 The second returned item and $! can be used to check for valid input:
1345     if (($str eq '') || ($n_unparsed != 0) || $!) {
1346         die "Non-numeric input $str" . ($! ? ": $!\n" : "\n");
1347     }
1349 When called in a scalar context strtod returns the parsed number.
1351 =item strtok
1353 strtok() is C-specific, use regular expressions instead, see
1354 L<perlre>, or L<perlfunc/split>.
1356 =item strtol
1358 String to (long) integer translation.  Returns the parsed number and
1359 the number of characters in the unparsed portion of the string.  Truly
1360 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1361 error, so clear $! before calling strtol.  However, non-POSIX systems
1362 may not check for overflow, and therefore will never set $!.
1364 strtol should respect any POSIX I<setlocale()> settings.
1366 To parse a string $str as a number in some base $base use
1368     $! = 0;
1369     ($num, $n_unparsed) = POSIX::strtol($str, $base);
1371 The base should be zero or between 2 and 36, inclusive.  When the base
1372 is zero or omitted strtol will use the string itself to determine the
1373 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1374 octal; any other leading characters mean decimal.  Thus, "1234" is
1375 parsed as a decimal number, "01234" as an octal number, and "0x1234"
1376 as a hexadecimal number.
1378 The second returned item and $! can be used to check for valid input:
1380     if (($str eq '') || ($n_unparsed != 0) || !$!) {
1381         die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1382     }
1384 When called in a scalar context strtol returns the parsed number.
1386 =item strtoul
1388 String to unsigned (long) integer translation.  strtoul() is identical
1389 to strtol() except that strtoul() only parses unsigned integers.  See
1390 L</strtol> for details.
1392 Note: Some vendors supply strtod() and strtol() but not strtoul().
1393 Other vendors that do supply strtoul() parse "-1" as a valid value.
1395 =item strxfrm
1397 String transformation.  Returns the transformed string.
1399         $dst = POSIX::strxfrm( $src );
1401 Used in conjunction with the C<strcoll()> function, see L</strcoll>.
1403 Not really needed since Perl can do this transparently, see
1404 L<perllocale>.
1406 =item sysconf
1408 Retrieves values of system configurable variables.
1410 The following will get the machine's clock speed.
1412         $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1414 Returns C<undef> on failure.
1416 =item system
1418 This is identical to Perl's builtin C<system()> function, see
1419 L<perlfunc/system>.
1421 =item tan
1423 This is identical to the C function C<tan()>, returning the
1424 tangent of the numerical argument.  See also L<Math::Trig>.
1426 =item tanh
1428 This is identical to the C function C<tanh()>, returning the
1429 hyperbolic tangent of the numerical argument.   See also L<Math::Trig>.
1431 =item tcdrain
1433 This is similar to the C function C<tcdrain()> for draining
1434 the output queue of its argument stream.
1436 Returns C<undef> on failure.
1438 =item tcflow
1440 This is similar to the C function C<tcflow()> for controlling
1441 the flow of its argument stream.
1443 Returns C<undef> on failure.
1445 =item tcflush
1447 This is similar to the C function C<tcflush()> for flushing
1448 the I/O buffers of its argument stream.
1450 Returns C<undef> on failure.
1452 =item tcgetpgrp
1454 This is identical to the C function C<tcgetpgrp()> for returning the
1455 process group identifier of the foreground process group of the controlling
1456 terminal.
1458 =item tcsendbreak
1460 This is similar to the C function C<tcsendbreak()> for sending
1461 a break on its argument stream.
1463 Returns C<undef> on failure.
1465 =item tcsetpgrp
1467 This is similar to the C function C<tcsetpgrp()> for setting the
1468 process group identifier of the foreground process group of the controlling
1469 terminal.
1471 Returns C<undef> on failure.
1473 =item time
1475 This is identical to Perl's builtin C<time()> function
1476 for returning the number of seconds since the epoch
1477 (whatever it is for the system), see L<perlfunc/time>.
1479 =item times
1481 The times() function returns elapsed realtime since some point in the past
1482 (such as system startup), user and system times for this process, and user
1483 and system times used by child processes.  All times are returned in clock
1484 ticks.
1486     ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
1488 Note: Perl's builtin C<times()> function returns four values, measured in
1489 seconds.
1491 =item tmpfile
1493 Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
1495 =item tmpnam
1497 Returns a name for a temporary file.
1499         $tmpfile = POSIX::tmpnam();
1501 For security reasons, which are probably detailed in your system's
1502 documentation for the C library tmpnam() function, this interface
1503 should not be used; instead see L<File::Temp>.
1505 =item tolower
1507 This is identical to the C function, except that it can apply to a single
1508 character or to a whole string.  Consider using the C<lc()> function,
1509 see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
1510 strings.
1512 =item toupper
1514 This is identical to the C function, except that it can apply to a single
1515 character or to a whole string.  Consider using the C<uc()> function,
1516 see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
1517 strings.
1519 =item ttyname
1521 This is identical to the C function C<ttyname()> for returning the
1522 name of the current terminal.
1524 =item tzname
1526 Retrieves the time conversion information from the C<tzname> variable.
1528         POSIX::tzset();
1529         ($std, $dst) = POSIX::tzname();
1531 =item tzset
1533 This is identical to the C function C<tzset()> for setting
1534 the current timezone based on the environment variable C<TZ>,
1535 to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
1536 functions.
1538 =item umask
1540 This is identical to Perl's builtin C<umask()> function
1541 for setting (and querying) the file creation permission mask,
1542 see L<perlfunc/umask>.
1544 =item uname
1546 Get name of current operating system.
1548         ($sysname, $nodename, $release, $version, $machine) = POSIX::uname();
1550 Note that the actual meanings of the various fields are not
1551 that well standardized, do not expect any great portability.
1552 The C<$sysname> might be the name of the operating system,
1553 the C<$nodename> might be the name of the host, the C<$release>
1554 might be the (major) release number of the operating system,
1555 the C<$version> might be the (minor) release number of the
1556 operating system, and the C<$machine> might be a hardware identifier.
1557 Maybe.
1559 =item ungetc
1561 Use method C<IO::Handle::ungetc()> instead.
1563 =item unlink
1565 This is identical to Perl's builtin C<unlink()> function
1566 for removing files, see L<perlfunc/unlink>.
1568 =item utime
1570 This is identical to Perl's builtin C<utime()> function
1571 for changing the time stamps of files and directories,
1572 see L<perlfunc/utime>.
1574 =item vfprintf
1576 vfprintf() is C-specific, see L<perlfunc/printf> instead.
1578 =item vprintf
1580 vprintf() is C-specific, see L<perlfunc/printf> instead.
1582 =item vsprintf
1584 vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
1586 =item wait
1588 This is identical to Perl's builtin C<wait()> function,
1589 see L<perlfunc/wait>.
1591 =item waitpid
1593 Wait for a child process to change state.  This is identical to Perl's
1594 builtin C<waitpid()> function, see L<perlfunc/waitpid>.
1596         $pid = POSIX::waitpid( -1, POSIX::WNOHANG );
1597         print "status = ", ($? / 256), "\n";
1599 =item wcstombs
1601 This is identical to the C function C<wcstombs()>.
1602 Perl does not have any support for the wide and multibyte
1603 characters of the C standards, so this might be a rather 
1604 useless function.
1606 =item wctomb
1608 This is identical to the C function C<wctomb()>.
1609 Perl does not have any support for the wide and multibyte
1610 characters of the C standards, so this might be a rather 
1611 useless function.
1613 =item write
1615 Write to a file.  This uses file descriptors such as those obtained by
1616 calling C<POSIX::open>.
1618         $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
1619         $buf = "hello";
1620         $bytes = POSIX::write( $b, $buf, 5 );
1622 Returns C<undef> on failure.
1624 See also L<perlfunc/syswrite>.
1626 =back
1628 =head1 CLASSES
1630 =head2 POSIX::SigAction
1632 =over 8
1634 =item new
1636 Creates a new C<POSIX::SigAction> object which corresponds to the C
1637 C<struct sigaction>.  This object will be destroyed automatically when it is
1638 no longer needed.  The first parameter is the fully-qualified name of a sub
1639 which is a signal-handler.  The second parameter is a C<POSIX::SigSet>
1640 object, it defaults to the empty set.  The third parameter contains the
1641 C<sa_flags>, it defaults to 0.
1643         $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
1644         $sigaction = POSIX::SigAction->new( \&main::handler, $sigset, &POSIX::SA_NOCLDSTOP );
1646 This C<POSIX::SigAction> object is intended for use with the C<POSIX::sigaction()>
1647 function.
1649 =back
1651 =over 8
1653 =item handler
1655 =item mask
1657 =item flags
1659 accessor functions to get/set the values of a SigAction object.
1661         $sigset = $sigaction->mask;
1662         $sigaction->flags(&POSIX::SA_RESTART);
1664 =item safe
1666 accessor function for the "safe signals" flag of a SigAction object; see
1667 L<perlipc> for general information on safe (a.k.a. "deferred") signals.  If
1668 you wish to handle a signal safely, use this accessor to set the "safe" flag
1669 in the C<POSIX::SigAction> object:
1671         $sigaction->safe(1);
1673 You may also examine the "safe" flag on the output action object which is
1674 filled in when given as the third parameter to C<POSIX::sigaction()>:
1676         sigaction(SIGINT, $new_action, $old_action);
1677         if ($old_action->safe) {
1678             # previous SIGINT handler used safe signals
1679         }
1681 =back
1683 =head2 POSIX::SigSet
1685 =over 8
1687 =item new
1689 Create a new SigSet object.  This object will be destroyed automatically
1690 when it is no longer needed.  Arguments may be supplied to initialize the
1691 set.
1693 Create an empty set.
1695         $sigset = POSIX::SigSet->new;
1697 Create a set with SIGUSR1.
1699         $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
1701 =item addset
1703 Add a signal to a SigSet object.
1705         $sigset->addset( &POSIX::SIGUSR2 );
1707 Returns C<undef> on failure.
1709 =item delset
1711 Remove a signal from the SigSet object.
1713         $sigset->delset( &POSIX::SIGUSR2 );
1715 Returns C<undef> on failure.
1717 =item emptyset
1719 Initialize the SigSet object to be empty.
1721         $sigset->emptyset();
1723 Returns C<undef> on failure.
1725 =item fillset
1727 Initialize the SigSet object to include all signals.
1729         $sigset->fillset();
1731 Returns C<undef> on failure.
1733 =item ismember
1735 Tests the SigSet object to see if it contains a specific signal.
1737         if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
1738                 print "contains SIGUSR1\n";
1739         }
1741 =back
1743 =head2 POSIX::Termios
1745 =over 8
1747 =item new
1749 Create a new Termios object.  This object will be destroyed automatically
1750 when it is no longer needed.  A Termios object corresponds to the termios
1751 C struct.  new() mallocs a new one, getattr() fills it from a file descriptor,
1752 and setattr() sets a file descriptor's parameters to match Termios' contents.
1754         $termios = POSIX::Termios->new;
1756 =item getattr
1758 Get terminal control attributes.
1760 Obtain the attributes for stdin.
1762         $termios->getattr()
1764 Obtain the attributes for stdout.
1766         $termios->getattr( 1 )
1768 Returns C<undef> on failure.
1770 =item getcc
1772 Retrieve a value from the c_cc field of a termios object.  The c_cc field is
1773 an array so an index must be specified.
1775         $c_cc[1] = $termios->getcc(1);
1777 =item getcflag
1779 Retrieve the c_cflag field of a termios object.
1781         $c_cflag = $termios->getcflag;
1783 =item getiflag
1785 Retrieve the c_iflag field of a termios object.
1787         $c_iflag = $termios->getiflag;
1789 =item getispeed
1791 Retrieve the input baud rate.
1793         $ispeed = $termios->getispeed;
1795 =item getlflag
1797 Retrieve the c_lflag field of a termios object.
1799         $c_lflag = $termios->getlflag;
1801 =item getoflag
1803 Retrieve the c_oflag field of a termios object.
1805         $c_oflag = $termios->getoflag;
1807 =item getospeed
1809 Retrieve the output baud rate.
1811         $ospeed = $termios->getospeed;
1813 =item setattr
1815 Set terminal control attributes.
1817 Set attributes immediately for stdout.
1819         $termios->setattr( 1, &POSIX::TCSANOW );
1821 Returns C<undef> on failure.
1823 =item setcc
1825 Set a value in the c_cc field of a termios object.  The c_cc field is an
1826 array so an index must be specified.
1828         $termios->setcc( &POSIX::VEOF, 1 );
1830 =item setcflag
1832 Set the c_cflag field of a termios object.
1834         $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
1836 =item setiflag
1838 Set the c_iflag field of a termios object.
1840         $termios->setiflag( $c_iflag | &POSIX::BRKINT );
1842 =item setispeed
1844 Set the input baud rate.
1846         $termios->setispeed( &POSIX::B9600 );
1848 Returns C<undef> on failure.
1850 =item setlflag
1852 Set the c_lflag field of a termios object.
1854         $termios->setlflag( $c_lflag | &POSIX::ECHO );
1856 =item setoflag
1858 Set the c_oflag field of a termios object.
1860         $termios->setoflag( $c_oflag | &POSIX::OPOST );
1862 =item setospeed
1864 Set the output baud rate.
1866         $termios->setospeed( &POSIX::B9600 );
1868 Returns C<undef> on failure.
1870 =item Baud rate values
1872 B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
1874 =item Terminal interface values
1876 TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
1878 =item c_cc field values
1880 VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
1882 =item c_cflag field values
1884 CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
1886 =item c_iflag field values
1888 BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
1890 =item c_lflag field values
1892 ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
1894 =item c_oflag field values
1896 OPOST
1898 =back
1900 =head1 PATHNAME CONSTANTS
1902 =over 8
1904 =item Constants
1906 _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE
1908 =back
1910 =head1 POSIX CONSTANTS
1912 =over 8
1914 =item Constants
1916 _POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
1918 =back
1920 =head1 SYSTEM CONFIGURATION
1922 =over 8
1924 =item Constants
1926 _SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
1928 =back
1930 =head1 ERRNO
1932 =over 8
1934 =item Constants
1936 E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
1937 EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
1938 EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
1939 EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
1940 ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
1941 ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
1942 ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
1943 EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
1944 ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
1945 ETXTBSY EUSERS EWOULDBLOCK EXDEV
1947 =back
1949 =head1 FCNTL
1951 =over 8
1953 =item Constants
1955 FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY
1957 =back
1959 =head1 FLOAT
1961 =over 8
1963 =item Constants
1965 DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP
1967 =back
1969 =head1 LIMITS
1971 =over 8
1973 =item Constants
1975 ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
1977 =back
1979 =head1 LOCALE
1981 =over 8
1983 =item Constants
1985 LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
1987 =back
1989 =head1 MATH
1991 =over 8
1993 =item Constants
1995 HUGE_VAL
1997 =back
1999 =head1 SIGNAL
2001 =over 8
2003 =item Constants
2005 SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
2006 SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
2007 SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
2008 SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
2009 SIG_UNBLOCK
2011 =back
2013 =head1 STAT
2015 =over 8
2017 =item Constants
2019 S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
2021 =item Macros
2023 S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
2025 =back
2027 =head1 STDLIB
2029 =over 8
2031 =item Constants
2033 EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
2035 =back
2037 =head1 STDIO
2039 =over 8
2041 =item Constants
2043 BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
2045 =back
2047 =head1 TIME
2049 =over 8
2051 =item Constants
2053 CLK_TCK CLOCKS_PER_SEC
2055 =back
2057 =head1 UNISTD
2059 =over 8
2061 =item Constants
2063 R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
2065 =back
2067 =head1 WAIT
2069 =over 8
2071 =item Constants
2073 WNOHANG WUNTRACED
2075 =over 16
2077 =item WNOHANG
2079 Do not suspend the calling process until a child process
2080 changes state but instead return immediately.
2082 =item WUNTRACED
2084 Catch stopped child processes.
2086 =back
2088 =item Macros
2090 WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
2092 =over 16
2094 =item WIFEXITED
2096 WIFEXITED($?) returns true if the child process exited normally
2097 (C<exit()> or by falling off the end of C<main()>)
2099 =item WEXITSTATUS
2101 WEXITSTATUS($?) returns the normal exit status of the child process
2102 (only meaningful if WIFEXITED($?) is true)
2104 =item WIFSIGNALED
2106 WIFSIGNALED($?) returns true if the child process terminated because
2107 of a signal
2109 =item WTERMSIG
2111 WTERMSIG($?) returns the signal the child process terminated for
2112 (only meaningful if WIFSIGNALED($?) is true)
2114 =item WIFSTOPPED
2116 WIFSTOPPED($?) returns true if the child process is currently stopped
2117 (can happen only if you specified the WUNTRACED flag to waitpid())
2119 =item WSTOPSIG
2121 WSTOPSIG($?) returns the signal the child process was stopped for
2122 (only meaningful if WIFSTOPPED($?) is true)
2124 =back
2126 =back