dd2071bfb4b3a042a3b5718a1267eb214f80ff17
[p5sagit/p5-mst-13.2.git] / ext / POSIX / POSIX.pod
1 =head1 NAME
2
3 POSIX - Perl interface to IEEE Std 1003.1
4
5 =head1 SYNOPSIS
6
7     use POSIX;
8     use POSIX qw(setsid);
9     use POSIX qw(:errno_h :fcntl_h);
10
11     printf "EINTR is %d\n", EINTR;
12
13     $sess_id = POSIX::setsid();
14
15     $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
16         # note: that's a filedescriptor, *NOT* a filehandle
17
18 =head1 DESCRIPTION
19
20 The POSIX module permits you to access all (or nearly all) the standard
21 POSIX 1003.1 identifiers.  Many of these identifiers have been given Perl-ish
22 interfaces.  Things which are C<#defines> in C, like EINTR or O_NDELAY, are
23 automatically exported into your namespace.  All functions are only exported
24 if you ask for them explicitly.  Most likely people will prefer to use the
25 fully-qualified function names.
26
27 This document gives a condensed list of the features available in the POSIX
28 module.  Consult your operating system's manpages for general information on
29 most features.  Consult L<perlfunc> for functions which are noted as being
30 identical to Perl's builtin functions.
31
32 The first section describes POSIX functions from the 1003.1 specification.
33 The second section describes some classes for signal objects, TTY objects,
34 and other miscellaneous objects.  The remaining sections list various
35 constants and macros in an organization which roughly follows IEEE Std
36 1003.1b-1993.
37
38 =head1 NOTE
39
40 The POSIX module is probably the most complex Perl module supplied with
41 the standard distribution.  It incorporates autoloading, namespace games,
42 and dynamic loading of code that's in Perl, C, or both.  It's a great
43 source of wisdom.
44
45 =head1 CAVEATS 
46
47 A few functions are not implemented because they are C specific.  If you
48 attempt to call these, they will print a message telling you that they
49 aren't implemented, and suggest using the Perl equivalent should one
50 exist.  For example, trying to access the setjmp() call will elicit the
51 message "setjmp() is C-specific: use eval {} instead".
52
53 Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
54 are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
55 For example, one vendor may not define EDEADLK, or the semantics of the
56 errno values set by open(2) might not be quite right.  Perl does not
57 attempt to verify POSIX compliance.  That means you can currently
58 successfully say "use POSIX",  and then later in your program you find
59 that your vendor has been lax and there's no usable ICANON macro after
60 all.  This could be construed to be a bug.
61
62 =head1 FUNCTIONS
63
64 =over 8
65
66 =item _exit
67
68 This is identical to the C function C<_exit()>.  It exits the program
69 immediately which means among other things buffered I/O is B<not> flushed.
70
71 =item abort
72
73 This is identical to the C function C<abort()>.  It terminates the
74 process with a C<SIGABRT> signal unless caught by a signal handler or
75 if the handler does not return normally (it e.g.  does a C<longjmp>).
76
77 =item abs
78
79 This is identical to Perl's builtin C<abs()> function, returning
80 the absolute value of its numerical argument.
81
82 =item access
83
84 Determines the accessibility of a file.
85
86         if( POSIX::access( "/", &POSIX::R_OK ) ){
87                 print "have read permission\n";
88         }
89
90 Returns C<undef> on failure.  Note: do not use C<access()> for
91 security purposes.  Between the C<access()> call and the operation
92 you are preparing for the permissions might change: a classic
93 I<race condition>.
94
95 =item acos
96
97 This is identical to the C function C<acos()>, returning
98 the arcus cosine of its numerical argument.  See also L<Math::Trig>.
99
100 =item alarm
101
102 This is identical to Perl's builtin C<alarm()> function,
103 either for arming or disarming the C<SIGARLM> timer.
104
105 =item asctime
106
107 This is identical to the C function C<asctime()>.  It returns
108 a string of the form
109
110         "Fri Jun  2 18:22:13 2000\n\0"
111
112 and it is called thusly
113
114         $asctime = asctime($sec, $min, $hour, $mday, $mon, $year,
115                            $wday, $yday, $isdst);
116
117 The C<$mon> is zero-based: January equals C<0>.  The C<$year> is
118 1900-based: 2001 equals C<101>.  The C<$wday>, C<$yday>, and C<$isdst>
119 default to zero (and the first two are usually ignored anyway).
120
121 =item asin
122
123 This is identical to the C function C<asin()>, returning
124 the arcus sine of its numerical argument.  See also L<Math::Trig>.
125
126 =item assert
127
128 Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
129 to achieve similar things.
130
131 =item atan
132
133 This is identical to the C function C<atan()>, returning the
134 arcus tangent of its numerical argument.  See also L<Math::Trig>.
135
136 =item atan2
137
138 This is identical to Perl's builtin C<atan2()> function, returning
139 the arcus tangent defined by its two numerical arguments, the I<y>
140 coordinate and the I<x> coordinate.  See also L<Math::Trig>.
141
142 =item atexit
143
144 atexit() is C-specific: use C<END {}> instead, see L<perlsub>.
145
146 =item atof
147
148 atof() is C-specific.  Perl converts strings to numbers transparently.
149 If you need to force a scalar to a number, add a zero to it.
150
151 =item atoi
152
153 atoi() is C-specific.  Perl converts strings to numbers transparently.
154 If you need to force a scalar to a number, add a zero to it.
155 If you need to have just the integer part, see L<perlfunc/int>.
156
157 =item atol
158
159 atol() is C-specific.  Perl converts strings to numbers transparently.
160 If you need to force a scalar to a number, add a zero to it.
161 If you need to have just the integer part, see L<perlfunc/int>.
162
163 =item bsearch
164
165 bsearch() not supplied.  For doing binary search on wordlists,
166 see L<Search::Dict>.
167
168 =item calloc
169
170 calloc() is C-specific.  Perl does memory management transparently.
171
172 =item ceil
173
174 This is identical to the C function C<ceil()>, returning the smallest
175 integer value greater than or equal to the given numerical argument.
176
177 =item chdir
178
179 This is identical to Perl's builtin C<chdir()> function, allowing
180 one to change the working (default) directory, see L<perlfunc/chdir>.
181
182 =item chmod
183
184 This is identical to Perl's builtin C<chmod()> function, allowing
185 one to change file and directory permissions, see L<perlfunc/chmod>.
186
187 =item chown
188
189 This is identical to Perl's builtin C<chown()> function, allowing one
190 to change file and directory owners and groups, see L<perlfunc/chown>.
191
192 =item clearerr
193
194 Use the method C<IO::Handle::clearerr()> instead, to reset the error
195 state (if any) and EOF state (if any) of the given stream.
196
197 =item clock
198
199 This is identical to the C function C<clock()>, returning the
200 amount of spent processor time in microseconds.
201
202 =item close
203
204 Close the file.  This uses file descriptors such as those obtained by calling
205 C<POSIX::open>.
206
207         $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
208         POSIX::close( $fd );
209
210 Returns C<undef> on failure.
211
212 See also L<perlfunc/close>.
213
214 =item closedir
215
216 This is identical to Perl's builtin C<closedir()> function for closing
217 a directory handle, see L<perlfunc/closedir>.
218
219 =item cos
220
221 This is identical to Perl's builtin C<cos()> function, for returning
222 the cosine of its numerical argument, see L<perlfunc/cos>.
223 See also L<Math::Trig>.
224
225 =item cosh
226
227 This is identical to the C function C<cosh()>, for returning
228 the hyperbolic cosine of its numeric argument.  See also L<Math::Trig>.
229
230 =item creat
231
232 Create a new file.  This returns a file descriptor like the ones returned by
233 C<POSIX::open>.  Use C<POSIX::close> to close the file.
234
235         $fd = POSIX::creat( "foo", 0611 );
236         POSIX::close( $fd );
237
238 See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
239
240 =item ctermid
241
242 Generates the path name for the controlling terminal.
243
244         $path = POSIX::ctermid();
245
246 =item ctime
247
248 This is identical to the C function C<ctime()> and equivalent
249 to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
250
251 =item cuserid
252
253 Get the login name of the owner of the current process.
254
255         $name = POSIX::cuserid();
256
257 =item difftime
258
259 This is identical to the C function C<difftime()>, for returning
260 the time difference (in seconds) between two times (as returned
261 by C<time()>), see L</time>.
262
263 =item div
264
265 div() is C-specific, use L<perlfunc/int> on the usual C</> division and
266 the modulus C<%>.
267
268 =item dup
269
270 This is similar to the C function C<dup()>, for duplicating a file
271 descriptor.
272
273 This uses file descriptors such as those obtained by calling
274 C<POSIX::open>.
275
276 Returns C<undef> on failure.
277
278 =item dup2
279
280 This is similar to the C function C<dup2()>, for duplicating a file
281 descriptor to an another known file descriptor.
282
283 This uses file descriptors such as those obtained by calling
284 C<POSIX::open>.
285
286 Returns C<undef> on failure.
287
288 =item errno
289
290 Returns the value of errno.
291
292         $errno = POSIX::errno();
293
294 This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
295
296 =item execl
297
298 execl() is C-specific, see L<perlfunc/exec>.
299
300 =item execle
301
302 execle() is C-specific, see L<perlfunc/exec>.
303
304 =item execlp
305
306 execlp() is C-specific, see L<perlfunc/exec>.
307
308 =item execv
309
310 execv() is C-specific, see L<perlfunc/exec>.
311
312 =item execve
313
314 execve() is C-specific, see L<perlfunc/exec>.
315
316 =item execvp
317
318 execvp() is C-specific, see L<perlfunc/exec>.
319
320 =item exit
321
322 This is identical to Perl's builtin C<exit()> function for exiting the
323 program, see L<perlfunc/exit>.
324
325 =item exp
326
327 This is identical to Perl's builtin C<exp()> function for
328 returning the exponent (I<e>-based) of the numerical argument,
329 see L<perlfunc/exp>.
330
331 =item fabs
332
333 This is identical to Perl's builtin C<abs()> function for returning
334 the absolute value of the numerical argument, see L<perlfunc/abs>.
335
336 =item fclose
337
338 Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
339
340 =item fcntl
341
342 This is identical to Perl's builtin C<fcntl()> function,
343 see L<perlfunc/fcntl>.
344
345 =item fdopen
346
347 Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
348
349 =item feof
350
351 Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
352
353 =item ferror
354
355 Use method C<IO::Handle::error()> instead.
356
357 =item fflush
358
359 Use method C<IO::Handle::flush()> instead.
360 See also L<perlvar/$OUTPUT_AUTOFLUSH>.
361
362 =item fgetc
363
364 Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
365
366 =item fgetpos
367
368 Use method C<IO::Seekable::getpos()> instead, or see L<L/seek>.
369
370 =item fgets
371
372 Use method C<IO::Handle::gets()> instead.  Similar to E<lt>E<gt>, also known
373 as L<perlfunc/readline>.
374
375 =item fileno
376
377 Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
378
379 =item floor
380
381 This is identical to the C function C<floor()>, returning the largest
382 integer value less than or equal to the numerical argument.
383
384 =item fmod
385
386 This is identical to the C function C<fmod()>.
387
388         $r = fmod($x, $y);
389
390 It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
391 The C<$r> has the same sign as C<$x> and magnitude (absolute value)
392 less than the magnitude of C<$y>.
393
394 =item fopen
395
396 Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
397
398 =item fork
399
400 This is identical to Perl's builtin C<fork()> function
401 for duplicating the current process, see L<perlfunc/fork>
402 and L<perlfork> if you are in Windows.
403
404 =item fpathconf
405
406 Retrieves the value of a configurable limit on a file or directory.  This
407 uses file descriptors such as those obtained by calling C<POSIX::open>.
408
409 The following will determine the maximum length of the longest allowable
410 pathname on the filesystem which holds C</tmp/foo>.
411
412         $fd = POSIX::open( "/tmp/foo", &POSIX::O_RDONLY );
413         $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX );
414
415 Returns C<undef> on failure.
416
417 =item fprintf
418
419 fprintf() is C-specific, see L<perlfunc/printf> instead.
420
421 =item fputc
422
423 fputc() is C-specific, see L<perlfunc/print> instead.
424
425 =item fputs
426
427 fputs() is C-specific, see L<perlfunc/print> instead.
428
429 =item fread
430
431 fread() is C-specific, see L<perlfunc/read> instead.
432
433 =item free
434
435 free() is C-specific.  Perl does memory management transparently.
436
437 =item freopen
438
439 freopen() is C-specific, see L<perlfunc/open> instead.
440
441 =item frexp
442
443 Return the mantissa and exponent of a floating-point number.
444
445         ($mantissa, $exponent) = POSIX::frexp( 1.234e56 );
446
447 =item fscanf
448
449 fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead.
450
451 =item fseek
452
453 Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
454
455 =item fsetpos
456
457 Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
458
459 =item fstat
460
461 Get file status.  This uses file descriptors such as those obtained by
462 calling C<POSIX::open>.  The data returned is identical to the data from
463 Perl's builtin C<stat> function.
464
465         $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
466         @stats = POSIX::fstat( $fd );
467
468 =item fsync
469
470 Use method C<IO::Handle::sync()> instead.
471
472 =item ftell
473
474 Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
475
476 =item fwrite
477
478 fwrite() is C-specific, see L<perlfunc/print> instead.
479
480 =item getc
481
482 This is identical to Perl's builtin C<getc()> function,
483 see L<perlfunc/getc>.
484
485 =item getchar
486
487 Returns one character from STDIN.  Identical to Perl's C<getc()>,
488 see L<perlfunc/getc>.
489
490 =item getcwd
491
492 Returns the name of the current working directory.
493 See also L<Cwd>.
494
495 =item getegid
496
497 Returns the effective group identifier.  Similar to Perl' s builtin
498 variable C<$(>, see L<perlvar/$EGID>.
499
500 =item getenv
501
502 Returns the value of the specified enironment variable.
503 The same information is available through the C<%ENV> array.
504
505 =item geteuid
506
507 Returns the effective user identifier.  Identical to Perl's builtin C<$E<gt>>
508 variable, see L<perlvar/$EUID>.
509
510 =item getgid
511
512 Returns the user's real group identifier.  Similar to Perl's builtin
513 variable C<$)>, see L<perlvar/$GID>.
514
515 =item getgrgid
516
517 This is identical to Perl's builtin C<getgrgid()> function for
518 returning group entries by group identifiers, see
519 L<perlfunc/getgrgid>.
520
521 =item getgrnam
522
523 This is identical to Perl's builtin C<getgrnam()> function for
524 returning group entries by group names, see L<perlfunc/getgrnam>.
525
526 =item getgroups
527
528 Returns the ids of the user's supplementary groups.  Similar to Perl's
529 builtin variable C<$)>, see L<perlvar/$GID>.
530
531 =item getlogin
532
533 This is identical to Perl's builtin C<getlogin()> function for
534 returning the user name associated with the current session, see
535 L<perlfunc/getlogin>.
536
537 =item getpgrp
538
539 This is identical to Perl's builtin C<getpgrp()> function for
540 returning the prcess group identifier of the current process, see
541 L<perlfunc/getpgrp>.
542
543 =item getpid
544
545 Returns the process identifier.  Identical to Perl's builtin
546 variable C<$$>, see L<perlvar/$PID>.
547
548 =item getppid
549
550 This is identical to Perl's builtin C<getppid()> function for
551 returning the process identifier of the parent process of the current
552 process , see L<perlfunc/getppid>.
553
554 =item getpwnam
555
556 This is identical to Perl's builtin C<getpwnam()> function for
557 returning user entries by user names, see L<perlfunc/getpwnam>.
558
559 =item getpwuid
560
561 This is identical to Perl's builtin C<getpwuid()> function for
562 returning user entries by user identifiers, see L<perlfunc/getpwuid>.
563
564 =item gets
565
566 Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known
567 as the C<readline()> function, see L<perlfunc/readline>.
568
569 B<NOTE>: if you have C programs that still use C<gets()>, be very
570 afraid.  The C<gets()> function is a source of endless grief because
571 it has no buffer overrun checks.  It should B<never> be used.  The
572 C<fgets()> function should be preferred instead.
573
574 =item getuid
575
576 Returns the user's identifier.  Identical to Perl's builtin C<$E<lt>> variable,
577 see L<perlvar/$UID>.
578
579 =item gmtime
580
581 This is identical to Perl's builtin C<gmtime()> function for
582 converting seconds since the epoch to a date in Greenwich Mean Time,
583 see L<perlfunc/gmtime>.
584
585 =item isalnum
586
587 This is identical to the C function, except that it can apply to a
588 single character or to a whole string.  Note that locale settings may
589 affect what characters are considered C<isalnum>.  Does not work on
590 Unicode characters code point 256 or higher.  Consider using regular
591 expressions and the C</[[:alnum:]]/> construct instead, or possibly
592 the C</\w/> construct.
593
594 =item isalpha
595
596 This is identical to the C function, except that it can apply to
597 a single character or to a whole string.  Note that locale settings
598 may affect what characters are considered C<isalpha>.  Does not work
599 on Unicode characters code point 256 or higher.  Consider using regular
600 expressions and the C</[[:alpha:]]/> construct instead.
601
602 =item isatty
603
604 Returns a boolean indicating whether the specified filehandle is connected
605 to a tty.  Similar to the C<-t> operator, see L<perlfunc/-X>.
606
607 =item iscntrl
608
609 This is identical to the C function, except that it can apply to
610 a single character or to a whole string.  Note that locale settings
611 may affect what characters are considered C<iscntrl>.  Does not work
612 on Unicode characters code point 256 or higher.  Consider using regular
613 expressions and the C</[[:cntrl:]]/> construct instead.
614
615 =item isdigit
616
617 This is identical to the C function, except that it can apply to
618 a single character or to a whole string.  Note that locale settings
619 may affect what characters are considered C<isdigit> (unlikely, but
620 still possible). Does not work on Unicode characters code point 256
621 or higher.  Consider using regular expressions and the C</[[:digit:]]/>
622 construct instead, or the C</\d/> construct.
623
624 =item isgraph
625
626 This is identical to the C function, except that it can apply to
627 a single character or to a whole string.  Note that locale settings
628 may affect what characters are considered C<isgraph>.  Does not work
629 on Unicode characters code point 256 or higher.  Consider using regular
630 expressions and the C</[[:graph:]]/> construct instead.
631
632 =item islower
633
634 This is identical to the C function, except that it can apply to
635 a single character or to a whole string.  Note that locale settings
636 may affect what characters are considered C<islower>.  Does not work
637 on Unicode characters code point 256 or higher.  Consider using regular
638 expressions and the C</[[:lower:]]/> construct instead.  Do B<not> use
639 C</[a-z]/>.
640
641 =item isprint
642
643 This is identical to the C function, except that it can apply to
644 a single character or to a whole string.  Note that locale settings
645 may affect what characters are considered C<isprint>.  Does not work
646 on Unicode characters code point 256 or higher.  Consider using regular
647 expressions and the C</[[:print:]]/> construct instead.
648
649 =item ispunct
650
651 This is identical to the C function, except that it can apply to
652 a single character or to a whole string.  Note that locale settings
653 may affect what characters are considered C<ispunct>.  Does not work
654 on Unicode characters code point 256 or higher.  Consider using regular
655 expressions and the C</[[:punct:]]/> construct instead.
656
657 =item isspace
658
659 This is identical to the C function, except that it can apply to
660 a single character or to a whole string.  Note that locale settings
661 may affect what characters are considered C<isspace>.  Does not work
662 on Unicode characters code point 256 or higher.  Consider using regular
663 expressions and the C</[[:space:]]/> construct instead, or the C</\s/>
664 construct.  (Note that C</\s/> and C</[[:space:]]/> are slightly
665 different in that C</[[:space:]]/> can normally match a vertical tab,
666 while C</\s/> does not.)
667
668 =item isupper
669
670 This is identical to the C function, except that it can apply to
671 a single character or to a whole string.  Note that locale settings
672 may affect what characters are considered C<isupper>.  Does not work
673 on Unicode characters code point 256 or higher.  Consider using regular
674 expressions and the C</[[:upper:]]/> construct instead.  Do B<not> use
675 C</[A-Z]/>.
676
677 =item isxdigit
678
679 This is identical to the C function, except that it can apply to a single
680 character or to a whole string.  Note that locale settings may affect what
681 characters are considered C<isxdigit> (unlikely, but still possible).
682 Does not work on Unicode characters code point 256 or higher.
683 Consider using regular expressions and the C</[[:xdigit:]]/>
684 construct instead, or simply C</[0-9a-f]/i>.
685
686 =item kill
687
688 This is identical to Perl's builtin C<kill()> function for sending
689 signals to processes (often to terminate them), see L<perlfunc/kill>.
690
691 =item labs
692
693 (For returning absolute values of long integers.)
694 labs() is C-specific, see L<perlfunc/abs> instead.
695
696 =item ldexp
697
698 This is identical to the C function C<ldexp()>
699 for multiplying floating point numbers with powers of two.
700
701         $x_quadrupled = POSIX::ldexp($x, 2);
702
703 =item ldiv
704
705 (For computing dividends of long integers.)
706 ldiv() is C-specific, use C</> and C<int()> instead.
707
708 =item link
709
710 This is identical to Perl's builtin C<link()> function
711 for creating hard links into files, see L<perlfunc/link>.
712
713 =item localeconv
714
715 Get numeric formatting information.  Returns a reference to a hash
716 containing the current locale formatting values.
717
718 Here is how to query the database for the B<de> (Deutsch or German) locale.
719
720         $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
721         print "Locale = $loc\n";
722         $lconv = POSIX::localeconv();
723         print "decimal_point    = ", $lconv->{decimal_point},   "\n";
724         print "thousands_sep    = ", $lconv->{thousands_sep},   "\n";
725         print "grouping = ", $lconv->{grouping},        "\n";
726         print "int_curr_symbol  = ", $lconv->{int_curr_symbol}, "\n";
727         print "currency_symbol  = ", $lconv->{currency_symbol}, "\n";
728         print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n";
729         print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n";
730         print "mon_grouping     = ", $lconv->{mon_grouping},    "\n";
731         print "positive_sign    = ", $lconv->{positive_sign},   "\n";
732         print "negative_sign    = ", $lconv->{negative_sign},   "\n";
733         print "int_frac_digits  = ", $lconv->{int_frac_digits}, "\n";
734         print "frac_digits      = ", $lconv->{frac_digits},     "\n";
735         print "p_cs_precedes    = ", $lconv->{p_cs_precedes},   "\n";
736         print "p_sep_by_space   = ", $lconv->{p_sep_by_space},  "\n";
737         print "n_cs_precedes    = ", $lconv->{n_cs_precedes},   "\n";
738         print "n_sep_by_space   = ", $lconv->{n_sep_by_space},  "\n";
739         print "p_sign_posn      = ", $lconv->{p_sign_posn},     "\n";
740         print "n_sign_posn      = ", $lconv->{n_sign_posn},     "\n";
741
742 =item localtime
743
744 This is identical to Perl's builtin C<localtime()> function for
745 converting seconds since the epoch to a date see L<perlfunc/localtime>.
746
747 =item log
748
749 This is identical to Perl's builtin C<log()> function,
750 returning the natural (I<e>-based) logarithm of the numerical argument,
751 see L<perlfunc/log>.
752
753 =item log10
754
755 This is identical to the C function C<log10()>,
756 returning the 10-base logarithm of the numerical argument.
757 You can also use
758
759     sub log10 { log($_[0]) / log(10) }
760
761 or
762
763     sub log10 { log($_[0]) / 2.30258509299405 }  
764
765 or
766
767     sub log10 { log($_[0]) * 0.434294481903252 }
768
769 =item longjmp
770
771 longjmp() is C-specific: use L<perlfunc/die> instead.
772
773 =item lseek
774
775 Move the file's read/write position.  This uses file descriptors such as
776 those obtained by calling C<POSIX::open>.
777
778         $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
779         $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
780
781 Returns C<undef> on failure.
782
783 =item malloc
784
785 malloc() is C-specific.  Perl does memory management transparently.
786
787 =item mblen
788
789 This is identical to the C function C<mblen()>.
790 Perl does not have any support for the wide and multibyte
791 characters of the C standards, so this might be a rather 
792 useless function.
793
794 =item mbstowcs
795
796 This is identical to the C function C<mbstowcs()>.
797 Perl does not have any support for the wide and multibyte
798 characters of the C standards, so this might be a rather 
799 useless function.
800
801 =item mbtowc
802
803 This is identical to the C function C<mbtowc()>.
804 Perl does not have any support for the wide and multibyte
805 characters of the C standards, so this might be a rather 
806 useless function.
807
808 =item memchr
809
810 memchr() is C-specific, see L<perlfunc/index> instead.
811
812 =item memcmp
813
814 memcmp() is C-specific, use C<eq> instead, see L<perlop>.
815
816 =item memcpy
817
818 memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
819
820 =item memmove
821
822 memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
823
824 =item memset
825
826 memset() is C-specific, use C<x> instead, see L<perlop>.
827
828 =item mkdir
829
830 This is identical to Perl's builtin C<mkdir()> function
831 for creating directories, see L<perlfunc/mkdir>.
832
833 =item mkfifo
834
835 This is similar to the C function C<mkfifo()> for creating
836 FIFO special files.
837
838         if (mkfifo($path, $mode)) { ....
839
840 Returns C<undef> on failure.  The C<$mode> is similar to the
841 mode of C<mkdir()>, see L<perlfunc/mkdir>.
842
843 =item mktime
844
845 Convert date/time info to a calendar time.
846
847 Synopsis:
848
849         mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
850
851 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
852 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1.  The
853 year (C<year>) is given in years since 1900.  I.e. The year 1995 is 95; the
854 year 2001 is 101.  Consult your system's C<mktime()> manpage for details
855 about these and the other arguments.
856
857 Calendar time for December 12, 1995, at 10:30 am.
858
859         $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
860         print "Date = ", POSIX::ctime($time_t);
861
862 Returns C<undef> on failure.
863
864 =item modf
865
866 Return the integral and fractional parts of a floating-point number.
867
868         ($fractional, $integral) = POSIX::modf( 3.14 );
869
870 =item nice
871
872 This is similar to the C function C<nice()>, for changing
873 the scheduling preference of the current process.  Positive
874 arguments mean more polite process, negative values more
875 needy process.  Normal user processes can only be more polite.
876
877 Returns C<undef> on failure.
878
879 =item offsetof
880
881 offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
882
883 =item open
884
885 Open a file for reading for writing.  This returns file descriptors, not
886 Perl filehandles.  Use C<POSIX::close> to close the file.
887
888 Open a file read-only with mode 0666.
889
890         $fd = POSIX::open( "foo" );
891
892 Open a file for read and write.
893
894         $fd = POSIX::open( "foo", &POSIX::O_RDWR );
895
896 Open a file for write, with truncation.
897
898         $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );
899
900 Create a new file with mode 0640.  Set up the file for writing.
901
902         $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );
903
904 Returns C<undef> on failure.
905
906 See also L<perlfunc/sysopen>.
907
908 =item opendir
909
910 Open a directory for reading.
911
912         $dir = POSIX::opendir( "/tmp" );
913         @files = POSIX::readdir( $dir );
914         POSIX::closedir( $dir );
915
916 Returns C<undef> on failure.
917
918 =item pathconf
919
920 Retrieves the value of a configurable limit on a file or directory.
921
922 The following will determine the maximum length of the longest allowable
923 pathname on the filesystem which holds C</tmp>.
924
925         $path_max = POSIX::pathconf( "/tmp", &POSIX::_PC_PATH_MAX );
926
927 Returns C<undef> on failure.
928
929 =item pause
930
931 This is similar to the C function C<pause()>, which suspends
932 the execution of the current process until a signal is received.
933
934 Returns C<undef> on failure.
935
936 =item perror
937
938 This is identical to the C function C<perror()>, which outputs to the
939 standard error stream the specified message followed by ": " and the
940 current error string.  Use the C<warn()> function and the C<$!>
941 variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
942
943 =item pipe
944
945 Create an interprocess channel.  This returns file descriptors like those
946 returned by C<POSIX::open>.
947
948         ($fd0, $fd1) = POSIX::pipe();
949         POSIX::write( $fd0, "hello", 5 );
950         POSIX::read( $fd1, $buf, 5 );
951
952 See also L<perlfunc/pipe>.
953
954 =item pow
955
956 Computes C<$x> raised to the power C<$exponent>.
957
958         $ret = POSIX::pow( $x, $exponent );
959
960 You can also use the C<**> operator, see L<perlop>.
961
962 =item printf
963
964 Formats and prints the specified arguments to STDOUT.
965 See also L<perlfunc/printf>.
966
967 =item putc
968
969 putc() is C-specific, see L<perlfunc/print> instead.
970
971 =item putchar
972
973 putchar() is C-specific, see L<perlfunc/print> instead.
974
975 =item puts
976
977 puts() is C-specific, see L<perlfunc/print> instead.
978
979 =item qsort
980
981 qsort() is C-specific, see L<perlfunc/sort> instead.
982
983 =item raise
984
985 Sends the specified signal to the current process.
986 See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
987
988 =item rand
989
990 C<rand()> is non-portable, see L<perlfunc/rand> instead.
991
992 =item read
993
994 Read from a file.  This uses file descriptors such as those obtained by
995 calling C<POSIX::open>.  If the buffer C<$buf> is not large enough for the
996 read then Perl will extend it to make room for the request.
997
998         $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
999         $bytes = POSIX::read( $fd, $buf, 3 );
1000
1001 Returns C<undef> on failure.
1002
1003 See also L<perlfunc/sysread>.
1004
1005 =item readdir
1006
1007 This is identical to Perl's builtin C<readdir()> function
1008 for reading directory entries, see L<perlfunc/readdir>.
1009
1010 =item realloc
1011
1012 realloc() is C-specific.  Perl does memory management transparently.
1013
1014 =item remove
1015
1016 This is identical to Perl's builtin C<unlink()> function
1017 for removing files, see L<perlfunc/unlink>.
1018
1019 =item rename
1020
1021 This is identical to Perl's builtin C<rename()> function
1022 for renaming files, see L<perlfunc/rename>.
1023
1024 =item rewind
1025
1026 Seeks to the beginning of the file.
1027
1028 =item rewinddir
1029
1030 This is identical to Perl's builtin C<rewinddir()> function for
1031 rewinding directory entry streams, see L<perlfunc/rewinddir>.
1032
1033 =item rmdir
1034
1035 This is identical to Perl's builtin C<rmdir()> function
1036 for removing (empty) directories, see L<perlfunc/rmdir>.
1037
1038 =item scanf
1039
1040 scanf() is C-specific, use E<lt>E<gt> and regular expressions instead,
1041 see L<perlre>.
1042
1043 =item setgid
1044
1045 Sets the real group identifier and the effective group identifier for
1046 this process.  Similar to assigning a value to the Perl's builtin
1047 C<$)> variable, see L<perlvar/$GID>, except that the latter
1048 will change only the real user identifier, and that the setgid()
1049 uses only a single numeric argument, as opposed to a space-separated
1050 list of numbers.
1051
1052 =item setjmp
1053
1054 C<setjmp()> is C-specific: use C<eval {}> instead,
1055 see L<perlfunc/eval>.
1056
1057 =item setlocale
1058
1059 Modifies and queries program's locale.  The following examples assume
1060
1061         use POSIX qw(setlocale LC_ALL LC_CTYPE);
1062
1063 has been issued.
1064
1065 The following will set the traditional UNIX system locale behavior
1066 (the second argument C<"C">).
1067
1068         $loc = setlocale( LC_ALL, "C" );
1069
1070 The following will query the current LC_CTYPE category.  (No second
1071 argument means 'query'.)
1072
1073         $loc = setlocale( LC_CTYPE );
1074
1075 The following will set the LC_CTYPE behaviour according to the locale
1076 environment variables (the second argument C<"">).
1077 Please see your systems C<setlocale(3)> documentation for the locale
1078 environment variables' meaning or consult L<perllocale>.
1079
1080         $loc = setlocale( LC_CTYPE, "" );
1081
1082 The following will set the LC_COLLATE behaviour to Argentinian
1083 Spanish. B<NOTE>: The naming and availability of locales depends on
1084 your operating system. Please consult L<perllocale> for how to find
1085 out which locales are available in your system.
1086
1087         $loc = setlocale( LC_ALL, "es_AR.ISO8859-1" );
1088
1089 =item setpgid
1090
1091 This is similar to the C function C<setpgid()> for
1092 setting the process group identifier of the current process.
1093
1094 Returns C<undef> on failure.
1095
1096 =item setsid
1097
1098 This is identical to the C function C<setsid()> for
1099 setting the session identifier of the current process.
1100
1101 =item setuid
1102
1103 Sets the real user identifier and the effective user identifier for
1104 this process.  Similar to assigning a value to the Perl's builtin
1105 C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter
1106 will change only the real user identifier.
1107
1108 =item sigaction
1109
1110 Detailed signal management.  This uses C<POSIX::SigAction> objects for the
1111 C<action> and C<oldaction> arguments.  Consult your system's C<sigaction>
1112 manpage for details.
1113
1114 Synopsis:
1115
1116         sigaction(sig, action, oldaction = 0)
1117
1118 Returns C<undef> on failure.
1119
1120 =item siglongjmp
1121
1122 siglongjmp() is C-specific: use L<perlfunc/die> instead.
1123
1124 =item sigpending
1125
1126 Examine signals that are blocked and pending.  This uses C<POSIX::SigSet>
1127 objects for the C<sigset> argument.  Consult your system's C<sigpending>
1128 manpage for details.
1129
1130 Synopsis:
1131
1132         sigpending(sigset)
1133
1134 Returns C<undef> on failure.
1135
1136 =item sigprocmask
1137
1138 Change and/or examine calling process's signal mask.  This uses
1139 C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
1140 Consult your system's C<sigprocmask> manpage for details.
1141
1142 Synopsis:
1143
1144         sigprocmask(how, sigset, oldsigset = 0)
1145
1146 Returns C<undef> on failure.
1147
1148 =item sigsetjmp
1149
1150 C<sigsetjmp()> is C-specific: use C<eval {}> instead,
1151 see L<perlfunc/eval>.
1152
1153 =item sigsuspend
1154
1155 Install a signal mask and suspend process until signal arrives.  This uses
1156 C<POSIX::SigSet> objects for the C<signal_mask> argument.  Consult your
1157 system's C<sigsuspend> manpage for details.
1158
1159 Synopsis:
1160
1161         sigsuspend(signal_mask)
1162
1163 Returns C<undef> on failure.
1164
1165 =item sin
1166
1167 This is identical to Perl's builtin C<sin()> function
1168 for returning the sine of the numerical argument,
1169 see L<perlfunc/sin>.  See also L<Math::Trig>.
1170
1171 =item sinh
1172
1173 This is identical to the C function C<sinh()>
1174 for returning the hyperbolic sine of the numerical argument.
1175 See also L<Math::Trig>.
1176
1177 =item sleep
1178
1179 This is functionally identical to Perl's builtin C<sleep()> function
1180 for suspending the execution of the current for process for certain
1181 number of seconds, see L<perlfunc/sleep>.  There is one signifanct 
1182 difference, however: C<POSIX::sleep()> returns the number of
1183 B<unslept> seconds, while the C<CORE::sleep()> returns the
1184 number of slept seconds.
1185
1186 =item sprintf
1187
1188 This is similar to Perl's builtin C<sprintf()> function
1189 for returning a string that has the arguments formatted as requested,
1190 see L<perlfunc/sprintf>.
1191
1192 =item sqrt
1193
1194 This is identical to Perl's builtin C<sqrt()> function.
1195 for returning the square root of the numerical argument,
1196 see L<perlfunc/sqrt>.
1197
1198 =item srand
1199
1200 Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
1201
1202 =item sscanf
1203
1204 sscanf() is C-specific, use regular expressions instead,
1205 see L<perlre>.
1206
1207 =item stat
1208
1209 This is identical to Perl's builtin C<stat()> function
1210 for retutning information about files and directories.
1211
1212 =item strcat
1213
1214 strcat() is C-specific, use C<.=> instead, see L<perlop>.
1215
1216 =item strchr
1217
1218 strchr() is C-specific, see L<perlfunc/index> instead.
1219
1220 =item strcmp
1221
1222 strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
1223
1224 =item strcoll
1225
1226 This is identical to the C function C<strcoll()>
1227 for collating (comparing) strings transformed using
1228 the C<strxfrm()> function.  Not really needed since
1229 Perl can do this transparently, see L<perllocale>.
1230
1231 =item strcpy
1232
1233 strcpy() is C-specific, use C<=> instead, see L<perlop>.
1234
1235 =item strcspn
1236
1237 strcspn() is C-specific, use regular expressions instead,
1238 see L<perlre>.
1239
1240 =item strerror
1241
1242 Returns the error string for the specified errno.
1243 Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
1244
1245 =item strftime
1246
1247 Convert date and time information to string.  Returns the string.
1248
1249 Synopsis:
1250
1251         strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
1252
1253 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
1254 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1.  The
1255 year (C<year>) is given in years since 1900.  I.e., the year 1995 is 95; the
1256 year 2001 is 101.  Consult your system's C<strftime()> manpage for details
1257 about these and the other arguments.
1258
1259 If you want your code to be portable, your format (C<fmt>) argument
1260 should use only the conversion specifiers defined by the ANSI C
1261 standard (C89, to play safe).  These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
1262 But even then, the B<results> of some of the conversion specifiers are
1263 non-portable.  For example, the specifiers C<aAbBcpZ> change according
1264 to the locale settings of the user, and both how to set locales (the
1265 locale names) and what output to expect are non-standard.
1266 The specifier C<c> changes according to the timezone settings of the
1267 user and the timezone computation rules of the operating system.
1268 The C<Z> specifier is notoriously unportable since the names of
1269 timezones are non-standard. Sticking to the numeric specifiers is the
1270 safest route.
1271
1272 The given arguments are made consistent as though by calling
1273 C<mktime()> before calling your system's C<strftime()> function,
1274 except that the C<isdst> value is not affected.
1275
1276 The string for Tuesday, December 12, 1995.
1277
1278         $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
1279         print "$str\n";
1280
1281 =item strlen
1282
1283 strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
1284
1285 =item strncat
1286
1287 strncat() is C-specific, use C<.=> instead, see L<perlop>.
1288
1289 =item strncmp
1290
1291 strncmp() is C-specific, use C<eq> instead, see L<perlop>.
1292
1293 =item strncpy
1294
1295 strncpy() is C-specific, use C<=> instead, see L<perlop>.
1296
1297 =item strpbrk
1298
1299 strpbrk() is C-specific, use regular expressions instead,
1300 see L<perlre>.
1301
1302 =item strrchr
1303
1304 strrchr() is C-specific, see L<perlfunc/rindex> instead.
1305
1306 =item strspn
1307
1308 strspn() is C-specific, use regular expressions instead,
1309 see L<perlre>.
1310
1311 =item strstr
1312
1313 This is identical to Perl's builtin C<index()> function,
1314 see L<perlfunc/index>.
1315
1316 =item strtod
1317
1318 String to double translation. Returns the parsed number and the number
1319 of characters in the unparsed portion of the string.  Truly
1320 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1321 error, so clear $! before calling strtod.  However, non-POSIX systems
1322 may not check for overflow, and therefore will never set $!.
1323
1324 strtod should respect any POSIX I<setlocale()> settings.
1325
1326 To parse a string $str as a floating point number use
1327
1328     $! = 0;
1329     ($num, $n_unparsed) = POSIX::strtod($str);
1330
1331 The second returned item and $! can be used to check for valid input:
1332
1333     if (($str eq '') || ($n_unparsed != 0) || !$!) {
1334         die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1335     }
1336
1337 When called in a scalar context strtod returns the parsed number.
1338
1339 =item strtok
1340
1341 strtok() is C-specific, use regular expressions instead, see
1342 L<perlre>, or L<perlfunc/split>.
1343
1344 =item strtol
1345
1346 String to (long) integer translation.  Returns the parsed number and
1347 the number of characters in the unparsed portion of the string.  Truly
1348 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1349 error, so clear $! before calling strtol.  However, non-POSIX systems
1350 may not check for overflow, and therefore will never set $!.
1351
1352 strtol should respect any POSIX I<setlocale()> settings.
1353
1354 To parse a string $str as a number in some base $base use
1355
1356     $! = 0;
1357     ($num, $n_unparsed) = POSIX::strtol($str, $base);
1358
1359 The base should be zero or between 2 and 36, inclusive.  When the base
1360 is zero or omitted strtol will use the string itself to determine the
1361 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1362 octal; any other leading characters mean decimal.  Thus, "1234" is
1363 parsed as a decimal number, "01234" as an octal number, and "0x1234"
1364 as a hexadecimal number.
1365
1366 The second returned item and $! can be used to check for valid input:
1367
1368     if (($str eq '') || ($n_unparsed != 0) || !$!) {
1369         die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1370     }
1371
1372 When called in a scalar context strtol returns the parsed number.
1373
1374 =item strtoul
1375
1376 String to unsigned (long) integer translation.  strtoul() is identical
1377 to strtol() except that strtoul() only parses unsigned integers.  See
1378 L</strtol> for details.
1379
1380 Note: Some vendors supply strtod() and strtol() but not strtoul().
1381 Other vendors that do supply strtoul() parse "-1" as a valid value.
1382
1383 =item strxfrm
1384
1385 String transformation.  Returns the transformed string.
1386
1387         $dst = POSIX::strxfrm( $src );
1388
1389 Used in conjunction with the C<strcoll()> function, see L</strcoll>.
1390
1391 Not really needed since Perl can do this transparently, see
1392 L<perllocale>.
1393
1394 =item sysconf
1395
1396 Retrieves values of system configurable variables.
1397
1398 The following will get the machine's clock speed.
1399
1400         $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1401
1402 Returns C<undef> on failure.
1403
1404 =item system
1405
1406 This is identical to Perl's builtin C<system()> function, see
1407 L<perlfunc/system>.
1408
1409 =item tan
1410
1411 This is identical to the C function C<tan()>, returning the
1412 tangent of the numerical argument.  See also L<Math::Trig>.
1413
1414 =item tanh
1415
1416 This is identical to the C function C<tanh()>, returning the
1417 hyperbolic tangent of the numerical argument.   See also L<Math::Trig>.
1418
1419 =item tcdrain
1420
1421 This is similar to the C function C<tcdrain()> for draining
1422 the output queue of its argument stream.
1423
1424 Returns C<undef> on failure.
1425
1426 =item tcflow
1427
1428 This is similar to the C function C<tcflow()> for controlling
1429 the flow of its argument stream.
1430
1431 Returns C<undef> on failure.
1432
1433 =item tcflush
1434
1435 This is similar to the C function C<tcflush()> for flushing
1436 the I/O buffers of its argument stream.
1437
1438 Returns C<undef> on failure.
1439
1440 =item tcgetpgrp
1441
1442 This is identical to the C function C<tcgetpgrp()> for returning the
1443 process group identifier of the foreground process group of the controlling
1444 terminal.
1445
1446 =item tcsendbreak
1447
1448 This is similar to the C function C<tcsendbreak()> for sending
1449 a break on its argument stream.
1450
1451 Returns C<undef> on failure.
1452
1453 =item tcsetpgrp
1454
1455 This is similar to the C function C<tcsetpgrp()> for setting the
1456 process group identifier of the foreground process group of the controlling
1457 terminal.
1458
1459 Returns C<undef> on failure.
1460
1461 =item time
1462
1463 This is identical to Perl's builtin C<time()> function
1464 for returning the number of seconds since the epoch
1465 (whatever it is for the system), see L<perlfunc/time>.
1466
1467 =item times
1468
1469 The times() function returns elapsed realtime since some point in the past
1470 (such as system startup), user and system times for this process, and user
1471 and system times used by child processes.  All times are returned in clock
1472 ticks.
1473
1474     ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
1475
1476 Note: Perl's builtin C<times()> function returns four values, measured in
1477 seconds.
1478
1479 =item tmpfile
1480
1481 Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
1482
1483 =item tmpnam
1484
1485 Returns a name for a temporary file.
1486
1487         $tmpfile = POSIX::tmpnam();
1488
1489 For security reasons, which are probably detailed in your system's
1490 documentation for the C library tmpnam() function, this interface
1491 should not be used; instead see L<File::Temp>.
1492
1493 =item tolower
1494
1495 This is identical to the C function, except that it can apply to a single
1496 character or to a whole string.  Consider using the C<lc()> function,
1497 see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
1498 strings.
1499
1500 =item toupper
1501
1502 This is identical to the C function, except that it can apply to a single
1503 character or to a whole string.  Consider using the C<uc()> function,
1504 see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
1505 strings.
1506
1507 =item ttyname
1508
1509 This is identical to the C function C<ttyname()> for returning the
1510 name of the current terminal.
1511
1512 =item tzname
1513
1514 Retrieves the time conversion information from the C<tzname> variable.
1515
1516         POSIX::tzset();
1517         ($std, $dst) = POSIX::tzname();
1518
1519 =item tzset
1520
1521 This is identical to the C function C<tzset()> for setting
1522 the current timezone based on the environment variable C<TZ>,
1523 to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
1524 functions.
1525
1526 =item umask
1527
1528 This is identical to Perl's builtin C<umask()> function
1529 for setting (and querying) the file creation permission mask,
1530 see L<perlfunc/umask>.
1531
1532 =item uname
1533
1534 Get name of current operating system.
1535
1536         ($sysname, $nodename, $release, $version, $machine) = POSIX::uname();
1537
1538 Note that the actual meanings of the various fields are not
1539 that well standardized, do not expect any great portability.
1540 The C<$sysname> might be the name of the operating system,
1541 the C<$nodename> might be the name of the host, the C<$release>
1542 might be the (major) release number of the operating system,
1543 the C<$version> might be the (minor) release number of the
1544 operating system, and the C<$machine> might be a hardware identifier.
1545 Maybe.
1546
1547 =item ungetc
1548
1549 Use method C<IO::Handle::ungetc()> instead.
1550
1551 =item unlink
1552
1553 This is identical to Perl's builtin C<unlink()> function
1554 for removing files, see L<perlfunc/unlink>.
1555
1556 =item utime
1557
1558 This is identical to Perl's builtin C<utime()> function
1559 for changing the time stamps of files and directories,
1560 see L<perlfunc/utime>.
1561
1562 =item vfprintf
1563
1564 vfprintf() is C-specific, see L<perlfunc/printf> instead.
1565
1566 =item vprintf
1567
1568 vprintf() is C-specific, see L<perlfunc/printf> instead.
1569
1570 =item vsprintf
1571
1572 vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
1573
1574 =item wait
1575
1576 This is identical to Perl's builtin C<wait()> function,
1577 see L<perlfunc/wait>.
1578
1579 =item waitpid
1580
1581 Wait for a child process to change state.  This is identical to Perl's
1582 builtin C<waitpid()> function, see L<perlfunc/waitpid>.
1583
1584         $pid = POSIX::waitpid( -1, POSIX::WNOHANG );
1585         print "status = ", ($? / 256), "\n";
1586
1587 =item wcstombs
1588
1589 This is identical to the C function C<wcstombs()>.
1590 Perl does not have any support for the wide and multibyte
1591 characters of the C standards, so this might be a rather 
1592 useless function.
1593
1594 =item wctomb
1595
1596 This is identical to the C function C<wctomb()>.
1597 Perl does not have any support for the wide and multibyte
1598 characters of the C standards, so this might be a rather 
1599 useless function.
1600
1601 =item write
1602
1603 Write to a file.  This uses file descriptors such as those obtained by
1604 calling C<POSIX::open>.
1605
1606         $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
1607         $buf = "hello";
1608         $bytes = POSIX::write( $b, $buf, 5 );
1609
1610 Returns C<undef> on failure.
1611
1612 See also L<perlfunc/syswrite>.
1613
1614 =back
1615
1616 =head1 CLASSES
1617
1618 =head2 POSIX::SigAction
1619
1620 =over 8
1621
1622 =item new
1623
1624 Creates a new C<POSIX::SigAction> object which corresponds to the C
1625 C<struct sigaction>.  This object will be destroyed automatically when it is
1626 no longer needed.  The first parameter is the fully-qualified name of a sub
1627 which is a signal-handler.  The second parameter is a C<POSIX::SigSet>
1628 object, it defaults to the empty set.  The third parameter contains the
1629 C<sa_flags>, it defaults to 0.
1630
1631         $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
1632         $sigaction = POSIX::SigAction->new( 'main::handler', $sigset, &POSIX::SA_NOCLDSTOP );
1633
1634 This C<POSIX::SigAction> object should be used with the C<POSIX::sigaction()>
1635 function.
1636
1637 =back
1638
1639 =over 8
1640
1641 =item handler
1642
1643 =item mask
1644
1645 =item flags
1646
1647 accessor functions to get/set the values of a SigAction object.
1648
1649         $sigset = $sigaction->mask;
1650         $sigaction->flags(&POSIX::SA_RESTART);
1651
1652 =back
1653
1654 =head2 POSIX::SigSet
1655
1656 =over 8
1657
1658 =item new
1659
1660 Create a new SigSet object.  This object will be destroyed automatically
1661 when it is no longer needed.  Arguments may be supplied to initialize the
1662 set.
1663
1664 Create an empty set.
1665
1666         $sigset = POSIX::SigSet->new;
1667
1668 Create a set with SIGUSR1.
1669
1670         $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
1671
1672 =item addset
1673
1674 Add a signal to a SigSet object.
1675
1676         $sigset->addset( &POSIX::SIGUSR2 );
1677
1678 Returns C<undef> on failure.
1679
1680 =item delset
1681
1682 Remove a signal from the SigSet object.
1683
1684         $sigset->delset( &POSIX::SIGUSR2 );
1685
1686 Returns C<undef> on failure.
1687
1688 =item emptyset
1689
1690 Initialize the SigSet object to be empty.
1691
1692         $sigset->emptyset();
1693
1694 Returns C<undef> on failure.
1695
1696 =item fillset
1697
1698 Initialize the SigSet object to include all signals.
1699
1700         $sigset->fillset();
1701
1702 Returns C<undef> on failure.
1703
1704 =item ismember
1705
1706 Tests the SigSet object to see if it contains a specific signal.
1707
1708         if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
1709                 print "contains SIGUSR1\n";
1710         }
1711
1712 =back
1713
1714 =head2 POSIX::Termios
1715
1716 =over 8
1717
1718 =item new
1719
1720 Create a new Termios object.  This object will be destroyed automatically
1721 when it is no longer needed.  A Termios object corresponds to the termios
1722 C struct.  new() mallocs a new one, getattr() fills it from a file descriptor,
1723 and setattr() sets a file descriptor's parameters to match Termios' contents.
1724
1725         $termios = POSIX::Termios->new;
1726
1727 =item getattr
1728
1729 Get terminal control attributes.
1730
1731 Obtain the attributes for stdin.
1732
1733         $termios->getattr()
1734
1735 Obtain the attributes for stdout.
1736
1737         $termios->getattr( 1 )
1738
1739 Returns C<undef> on failure.
1740
1741 =item getcc
1742
1743 Retrieve a value from the c_cc field of a termios object.  The c_cc field is
1744 an array so an index must be specified.
1745
1746         $c_cc[1] = $termios->getcc(1);
1747
1748 =item getcflag
1749
1750 Retrieve the c_cflag field of a termios object.
1751
1752         $c_cflag = $termios->getcflag;
1753
1754 =item getiflag
1755
1756 Retrieve the c_iflag field of a termios object.
1757
1758         $c_iflag = $termios->getiflag;
1759
1760 =item getispeed
1761
1762 Retrieve the input baud rate.
1763
1764         $ispeed = $termios->getispeed;
1765
1766 =item getlflag
1767
1768 Retrieve the c_lflag field of a termios object.
1769
1770         $c_lflag = $termios->getlflag;
1771
1772 =item getoflag
1773
1774 Retrieve the c_oflag field of a termios object.
1775
1776         $c_oflag = $termios->getoflag;
1777
1778 =item getospeed
1779
1780 Retrieve the output baud rate.
1781
1782         $ospeed = $termios->getospeed;
1783
1784 =item setattr
1785
1786 Set terminal control attributes.
1787
1788 Set attributes immediately for stdout.
1789
1790         $termios->setattr( 1, &POSIX::TCSANOW );
1791
1792 Returns C<undef> on failure.
1793
1794 =item setcc
1795
1796 Set a value in the c_cc field of a termios object.  The c_cc field is an
1797 array so an index must be specified.
1798
1799         $termios->setcc( &POSIX::VEOF, 1 );
1800
1801 =item setcflag
1802
1803 Set the c_cflag field of a termios object.
1804
1805         $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
1806
1807 =item setiflag
1808
1809 Set the c_iflag field of a termios object.
1810
1811         $termios->setiflag( $c_iflag | &POSIX::BRKINT );
1812
1813 =item setispeed
1814
1815 Set the input baud rate.
1816
1817         $termios->setispeed( &POSIX::B9600 );
1818
1819 Returns C<undef> on failure.
1820
1821 =item setlflag
1822
1823 Set the c_lflag field of a termios object.
1824
1825         $termios->setlflag( $c_lflag | &POSIX::ECHO );
1826
1827 =item setoflag
1828
1829 Set the c_oflag field of a termios object.
1830
1831         $termios->setoflag( $c_oflag | &POSIX::OPOST );
1832
1833 =item setospeed
1834
1835 Set the output baud rate.
1836
1837         $termios->setospeed( &POSIX::B9600 );
1838
1839 Returns C<undef> on failure.
1840
1841 =item Baud rate values
1842
1843 B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
1844
1845 =item Terminal interface values
1846
1847 TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
1848
1849 =item c_cc field values
1850
1851 VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
1852
1853 =item c_cflag field values
1854
1855 CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
1856
1857 =item c_iflag field values
1858
1859 BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
1860
1861 =item c_lflag field values
1862
1863 ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
1864
1865 =item c_oflag field values
1866
1867 OPOST
1868
1869 =back
1870
1871 =head1 PATHNAME CONSTANTS
1872
1873 =over 8
1874
1875 =item Constants
1876
1877 _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
1878
1879 =back
1880
1881 =head1 POSIX CONSTANTS
1882
1883 =over 8
1884
1885 =item Constants
1886
1887 _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
1888
1889 =back
1890
1891 =head1 SYSTEM CONFIGURATION
1892
1893 =over 8
1894
1895 =item Constants
1896
1897 _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
1898
1899 =back
1900
1901 =head1 ERRNO
1902
1903 =over 8
1904
1905 =item Constants
1906
1907 E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
1908 EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
1909 EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
1910 EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
1911 ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
1912 ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
1913 ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
1914 EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
1915 ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
1916 ETXTBSY EUSERS EWOULDBLOCK EXDEV
1917
1918 =back
1919
1920 =head1 FCNTL
1921
1922 =over 8
1923
1924 =item Constants
1925
1926 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
1927
1928 =back
1929
1930 =head1 FLOAT
1931
1932 =over 8
1933
1934 =item Constants
1935
1936 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
1937
1938 =back
1939
1940 =head1 LIMITS
1941
1942 =over 8
1943
1944 =item Constants
1945
1946 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
1947
1948 =back
1949
1950 =head1 LOCALE
1951
1952 =over 8
1953
1954 =item Constants
1955
1956 LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
1957
1958 =back
1959
1960 =head1 MATH
1961
1962 =over 8
1963
1964 =item Constants
1965
1966 HUGE_VAL
1967
1968 =back
1969
1970 =head1 SIGNAL
1971
1972 =over 8
1973
1974 =item Constants
1975
1976 SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
1977 SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
1978 SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
1979 SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
1980 SIG_UNBLOCK
1981
1982 =back
1983
1984 =head1 STAT
1985
1986 =over 8
1987
1988 =item Constants
1989
1990 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
1991
1992 =item Macros
1993
1994 S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
1995
1996 =back
1997
1998 =head1 STDLIB
1999
2000 =over 8
2001
2002 =item Constants
2003
2004 EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
2005
2006 =back
2007
2008 =head1 STDIO
2009
2010 =over 8
2011
2012 =item Constants
2013
2014 BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
2015
2016 =back
2017
2018 =head1 TIME
2019
2020 =over 8
2021
2022 =item Constants
2023
2024 CLK_TCK CLOCKS_PER_SEC
2025
2026 =back
2027
2028 =head1 UNISTD
2029
2030 =over 8
2031
2032 =item Constants
2033
2034 R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
2035
2036 =back
2037
2038 =head1 WAIT
2039
2040 =over 8
2041
2042 =item Constants
2043
2044 WNOHANG WUNTRACED
2045
2046 =over 16
2047
2048 =item WNOHANG
2049
2050 Do not suspend the calling process until a child process
2051 changes state but instead return immediately.
2052
2053 =item WUNTRACED
2054
2055 Catch stopped child processes.
2056
2057 =back
2058
2059 =item Macros
2060
2061 WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
2062
2063 =over 16
2064
2065 =item WIFEXITED
2066
2067 WIFEXITED($?) returns true if the child process exited normally
2068 (C<exit()> or by falling off the end of C<main()>)
2069
2070 =item WEXITSTATUS
2071
2072 WEXITSTATUS($?) returns the normal exit status of the child process
2073 (only meaningful if WIFEXITED($?) is true)
2074
2075 =item WIFSIGNALED
2076
2077 WIFSIGNALED($?) returns true if the child process terminated because
2078 of a signal
2079
2080 =item WTERMSIG
2081
2082 WTERMSIG($?) returns the signal the child process terminated for
2083 (only meaningful if WIFSIGNALED($?) is true)
2084
2085 =item WIFSTOPPED
2086
2087 WIFSTOPPED($?) returns true if the child process is currently stopped
2088 (can happen only if you specified the WUNTRACED flag to waitpid())
2089
2090 =item WSTOPSIG
2091
2092 WSTOPSIG($?) returns the signal the child process was stopped for
2093 (only meaningful if WIFSTOPPED($?) is true)
2094
2095 =back
2096
2097 =back
2098