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