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