This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perllocale: Tweak cautionary text
[perl5.git] / ext / POSIX / lib / POSIX.pod
CommitLineData
37120919
AD
1=head1 NAME
2
3POSIX - Perl interface to IEEE Std 1003.1
4
cb1a09d0
AD
5=head1 SYNOPSIS
6
a17b2d91 7 use POSIX ();
cb1a09d0
AD
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
AD
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
MS
22interfaces.
23
37120919
AD
24This document gives a condensed list of the features available in the POSIX
25module. Consult your operating system's manpages for general information on
26most features. Consult L<perlfunc> for functions which are noted as being
dc416353 27identical or almost identical to Perl's builtin functions.
37120919
AD
28
29The first section describes POSIX functions from the 1003.1 specification.
30The second section describes some classes for signal objects, TTY objects,
31and other miscellaneous objects. The remaining sections list various
32constants and macros in an organization which roughly follows IEEE Std
331003.1b-1993.
34
3609ea0d 35=head1 CAVEATS
37120919 36
ea660a4b
AP
37I<Everything is exported by default> (with a handful of exceptions).
38This is an unfortunate backwards compatibility feature and its use is
39B<strongly L<discouraged|perlpolicy/discouraged>>.
40You should either prevent the exporting (by saying S<C<use POSIX ();>>,
41as usual) and then use fully qualified names (e.g. C<POSIX::SEEK_END>),
42or give an explicit import list.
43If you do neither and opt for the default (as in S<C<use POSIX;>>), you
44will import I<hundreds and hundreds> of symbols into your namespace.
45
37120919
AD
46A few functions are not implemented because they are C specific. If you
47attempt to call these, they will print a message telling you that they
41cd218c
KW
48aren't implemented, and suggest using the Perl equivalent, should one
49exist. For example, trying to access the C<setjmp()> call will elicit the
50message "C<setjmp() is C-specific: use eval {} instead>".
37120919
AD
51
52Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
53are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
41cd218c
KW
54For example, one vendor may not define C<EDEADLK>, or the semantics of the
55errno values set by C<open(2)> might not be quite right. Perl does not
37120919
AD
56attempt to verify POSIX compliance. That means you can currently
57successfully say "use POSIX", and then later in your program you find
41cd218c 58that your vendor has been lax and there's no usable C<ICANON> macro after
37120919
AD
59all. This could be construed to be a bug.
60
61=head1 FUNCTIONS
62
63=over 8
64
41cd218c 65=item C<_exit>
37120919 66
4755096e
GS
67This is identical to the C function C<_exit()>. It exits the program
68immediately which means among other things buffered I/O is B<not> flushed.
37120919 69
15978375
JH
70Note that when using threads and in Linux this is B<not> a good way to
71exit a thread because in Linux processes and threads are kind of the
72same thing (Note: while this is the situation in early 2003 there are
73projects under way to have threads with more POSIXly semantics in Linux).
74If you want not to return from a thread, detach the thread.
75
41cd218c 76=item C<abort>
37120919 77
4755096e
GS
78This is identical to the C function C<abort()>. It terminates the
79process with a C<SIGABRT> signal unless caught by a signal handler or
80if the handler does not return normally (it e.g. does a C<longjmp>).
37120919 81
41cd218c 82=item C<abs>
37120919 83
bda53d3e
JK
84This is identical to Perl's builtin C<abs()> function, returning the absolute
85value of its numerical argument (except that C<POSIX::abs()> must be provided
86an explicit value (rather than relying on an implicit C<$_>):
87
88 $absolute_value = POSIX::abs(42); # good
89
90 $absolute_value = POSIX::abs(); # throws exception
37120919 91
41cd218c 92=item C<access>
37120919
AD
93
94Determines the accessibility of a file.
95
96 if( POSIX::access( "/", &POSIX::R_OK ) ){
97 print "have read permission\n";
98 }
99
4755096e
GS
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
41cd218c 105=item C<acos>
37120919 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
9d233e12
JH
110=item C<acosh>
111
4d0de388 112This is identical to the C function C<acosh()>, returning the
9d233e12
JH
113hyperbolic arcus cosine of its numerical argument [C99]. See also
114L<Math::Trig>.
115
41cd218c 116=item C<alarm>
37120919 117
bda53d3e
JK
118This is identical to Perl's builtin C<alarm()> function, either for arming or
119disarming the C<SIGARLM> timer, except that C<POSIX::alarm()> must be provided
120an explicit value (rather than relying on an implicit C<$_>):
121
122 POSIX::alarm(3) # good
123
124 POSIX::alarm() # throws exception
37120919 125
41cd218c 126=item C<asctime>
37120919 127
4755096e
GS
128This is identical to the C function C<asctime()>. It returns
129a string of the form
130
131 "Fri Jun 2 18:22:13 2000\n\0"
132
133and it is called thusly
134
b70c169c
FC
135 $asctime = asctime($sec, $min, $hour, $mday, $mon,
136 $year, $wday, $yday, $isdst);
4755096e
GS
137
138The C<$mon> is zero-based: January equals C<0>. The C<$year> is
c1646883
RGS
1391900-based: 2001 equals C<101>. C<$wday> and C<$yday> default to zero
140(and are usually ignored anyway), and C<$isdst> defaults to -1.
37120919 141
41cd218c 142=item C<asin>
37120919 143
4755096e 144This is identical to the C function C<asin()>, returning
c2e66d9e 145the arcus sine of its numerical argument. See also L<Math::Trig>.
37120919 146
9d233e12
JH
147=item C<asinh>
148
4d0de388 149This is identical to the C function C<asinh()>, returning the
9d233e12
JH
150hyperbolic arcus sine of its numerical argument [C99]. See also
151L<Math::Trig>.
152
41cd218c 153=item C<assert>
37120919 154
4755096e
GS
155Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
156to achieve similar things.
37120919 157
41cd218c 158=item C<atan>
37120919 159
4755096e 160This is identical to the C function C<atan()>, returning the
c2e66d9e 161arcus tangent of its numerical argument. See also L<Math::Trig>.
37120919 162
9d233e12
JH
163=item C<atanh>
164
4d0de388 165This is identical to the C function C<atanh()>, returning the
9d233e12
JH
166hyperbolic arcus tangent of its numerical argument [C99]. See also
167L<Math::Trig>.
168
41cd218c 169=item C<atan2>
37120919 170
4755096e
GS
171This is identical to Perl's builtin C<atan2()> function, returning
172the arcus tangent defined by its two numerical arguments, the I<y>
c2e66d9e 173coordinate and the I<x> coordinate. See also L<Math::Trig>.
37120919 174
41cd218c 175=item C<atexit>
37120919 176
4d0de388 177Not implemented. C<atexit()> is C-specific: use C<END {}> instead, see L<perlmod>.
37120919 178
41cd218c 179=item C<atof>
37120919 180
4d0de388 181Not implemented. C<atof()> is C-specific. Perl converts strings to numbers transparently.
4755096e 182If you need to force a scalar to a number, add a zero to it.
37120919 183
41cd218c 184=item C<atoi>
37120919 185
4d0de388 186Not implemented. C<atoi()> is C-specific. Perl converts strings to numbers transparently.
4755096e
GS
187If you need to force a scalar to a number, add a zero to it.
188If you need to have just the integer part, see L<perlfunc/int>.
37120919 189
41cd218c 190=item C<atol>
37120919 191
4d0de388 192Not implemented. C<atol()> is C-specific. Perl converts strings to numbers transparently.
4755096e
GS
193If you need to force a scalar to a number, add a zero to it.
194If you need to have just the integer part, see L<perlfunc/int>.
37120919 195
41cd218c 196=item C<bsearch>
37120919 197
41cd218c 198C<bsearch()> not supplied. For doing binary search on wordlists,
4755096e 199see L<Search::Dict>.
37120919 200
41cd218c 201=item C<calloc>
37120919 202
4d0de388 203Not implemented. C<calloc()> is C-specific. Perl does memory management transparently.
37120919 204
9d233e12
JH
205=item C<cbrt>
206
207The cube root [C99].
208
41cd218c 209=item C<ceil>
37120919 210
4755096e
GS
211This is identical to the C function C<ceil()>, returning the smallest
212integer value greater than or equal to the given numerical argument.
37120919 213
41cd218c 214=item C<chdir>
37120919 215
bda53d3e
JK
216This is identical to Perl's builtin C<chdir()> function, allowing one to
217change the working (default) directory -- see L<perlfunc/chdir> -- with the
218exception that C<POSIX::chdir()> must be provided an explicit value (rather
219than relying on an implicit C<$_>):
220
221 $rv = POSIX::chdir('path/to/dir'); # good
222
223 $rv = POSIX::chdir(); # throws exception
37120919 224
41cd218c 225=item C<chmod>
37120919 226
4755096e 227This is identical to Perl's builtin C<chmod()> function, allowing
bda53d3e
JK
228one to change file and directory permissions -- see L<perlfunc/chmod> -- with
229the exception that C<POSIX::chmod()> can only change one file at a time
230(rather than a list of files):
231
232 $c = chmod 0664, $file1, $file2; # good
233
234 $c = POSIX::chmod 0664, $file1; # throws exception
235
236 $c = POSIX::chmod 0664, $file1, $file2; # throws exception
37120919 237
c6f0b8ca
TC
238As with the built-in C<chmod()>, C<$file> may be a filename or a file
239handle.
240
41cd218c 241=item C<chown>
37120919 242
4755096e
GS
243This is identical to Perl's builtin C<chown()> function, allowing one
244to change file and directory owners and groups, see L<perlfunc/chown>.
37120919 245
41cd218c 246=item C<clearerr>
37120919 247
4d0de388 248Not implemented. Use the method C<IO::Handle::clearerr()> instead, to reset the error
4755096e 249state (if any) and EOF state (if any) of the given stream.
37120919 250
41cd218c 251=item C<clock>
37120919 252
4755096e
GS
253This is identical to the C function C<clock()>, returning the
254amount of spent processor time in microseconds.
37120919 255
41cd218c 256=item C<close>
37120919 257
cb1a09d0
AD
258Close the file. This uses file descriptors such as those obtained by calling
259C<POSIX::open>.
260
261 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
262 POSIX::close( $fd );
37120919
AD
263
264Returns C<undef> on failure.
265
4755096e
GS
266See also L<perlfunc/close>.
267
41cd218c 268=item C<closedir>
37120919 269
4755096e
GS
270This is identical to Perl's builtin C<closedir()> function for closing
271a directory handle, see L<perlfunc/closedir>.
37120919 272
41cd218c 273=item C<cos>
37120919 274
4755096e
GS
275This is identical to Perl's builtin C<cos()> function, for returning
276the cosine of its numerical argument, see L<perlfunc/cos>.
c2e66d9e 277See also L<Math::Trig>.
37120919 278
41cd218c 279=item C<cosh>
37120919 280
4755096e 281This is identical to the C function C<cosh()>, for returning
c2e66d9e 282the hyperbolic cosine of its numeric argument. See also L<Math::Trig>.
37120919 283
9d233e12
JH
284=item C<copysign>
285
4d0de388
KW
286Returns C<x> but with the sign of C<y> [C99].
287
288 $x_with_sign_of_y = POSIX::copysign($x, $y);
9d233e12
JH
289
290See also L</signbit>.
291
41cd218c 292=item C<creat>
37120919 293
cb1a09d0
AD
294Create a new file. This returns a file descriptor like the ones returned by
295C<POSIX::open>. Use C<POSIX::close> to close the file.
296
297 $fd = POSIX::creat( "foo", 0611 );
298 POSIX::close( $fd );
37120919 299
4755096e
GS
300See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
301
41cd218c 302=item C<ctermid>
37120919 303
cb1a09d0 304Generates the path name for the controlling terminal.
37120919
AD
305
306 $path = POSIX::ctermid();
307
41cd218c 308=item C<ctime>
37120919 309
4755096e
GS
310This is identical to the C function C<ctime()> and equivalent
311to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
37120919 312
631637d8 313=item C<cuserid> [POSIX.1-1988]
37120919 314
4755096e 315Get the login name of the owner of the current process.
37120919
AD
316
317 $name = POSIX::cuserid();
318
631637d8
MB
319Note: this function has not been specified by POSIX since 1990 and is included
320only for backwards compatibility. New code should use L<C<getlogin()>|perlfunc/getlogin> instead.
321
41cd218c 322=item C<difftime>
37120919 323
4755096e
GS
324This is identical to the C function C<difftime()>, for returning
325the time difference (in seconds) between two times (as returned
326by C<time()>), see L</time>.
37120919 327
41cd218c 328=item C<div>
37120919 329
4d0de388 330Not implemented. C<div()> is C-specific, use L<perlfunc/int> on the usual C</> division and
4755096e 331the modulus C<%>.
37120919 332
41cd218c 333=item C<dup>
37120919 334
4755096e
GS
335This is similar to the C function C<dup()>, for duplicating a file
336descriptor.
cb1a09d0
AD
337
338This uses file descriptors such as those obtained by calling
339C<POSIX::open>.
37120919
AD
340
341Returns C<undef> on failure.
342
41cd218c 343=item C<dup2>
37120919 344
4755096e
GS
345This is similar to the C function C<dup2()>, for duplicating a file
346descriptor to an another known file descriptor.
cb1a09d0
AD
347
348This uses file descriptors such as those obtained by calling
349C<POSIX::open>.
37120919
AD
350
351Returns C<undef> on failure.
352
9d233e12
JH
353=item C<erf>
354
355The error function [C99].
356
357=item C<erfc>
358
359The complementary error function [C99].
360
41cd218c 361=item C<errno>
37120919
AD
362
363Returns the value of errno.
364
365 $errno = POSIX::errno();
366
4755096e
GS
367This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
368
41cd218c 369=item C<execl>
37120919 370
4d0de388 371Not implemented. C<execl()> is C-specific, see L<perlfunc/exec>.
37120919 372
41cd218c 373=item C<execle>
37120919 374
4d0de388 375Not implemented. C<execle()> is C-specific, see L<perlfunc/exec>.
37120919 376
41cd218c 377=item C<execlp>
37120919 378
4d0de388 379Not implemented. C<execlp()> is C-specific, see L<perlfunc/exec>.
37120919 380
41cd218c 381=item C<execv>
37120919 382
4d0de388 383Not implemented. C<execv()> is C-specific, see L<perlfunc/exec>.
37120919 384
41cd218c 385=item C<execve>
37120919 386
4d0de388 387Not implemented. C<execve()> is C-specific, see L<perlfunc/exec>.
37120919 388
41cd218c 389=item C<execvp>
37120919 390
4d0de388 391Not implemented. C<execvp()> is C-specific, see L<perlfunc/exec>.
37120919 392
41cd218c 393=item C<exit>
37120919 394
4755096e
GS
395This is identical to Perl's builtin C<exit()> function for exiting the
396program, see L<perlfunc/exit>.
37120919 397
41cd218c 398=item C<exp>
37120919 399
4755096e
GS
400This is identical to Perl's builtin C<exp()> function for
401returning the exponent (I<e>-based) of the numerical argument,
402see L<perlfunc/exp>.
37120919 403
9d233e12
JH
404=item C<expm1>
405
406Equivalent to C<exp(x) - 1>, but more precise for small argument values [C99].
407
408See also L</log1p>.
409
41cd218c 410=item C<fabs>
37120919 411
4755096e
GS
412This is identical to Perl's builtin C<abs()> function for returning
413the absolute value of the numerical argument, see L<perlfunc/abs>.
37120919 414
41cd218c 415=item C<fclose>
37120919 416
4d0de388 417Not implemented. Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
37120919 418
41cd218c 419=item C<fcntl>
37120919 420
4755096e
GS
421This is identical to Perl's builtin C<fcntl()> function,
422see L<perlfunc/fcntl>.
37120919 423
41cd218c 424=item C<fdopen>
37120919 425
4d0de388 426Not implemented. Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
37120919 427
41cd218c 428=item C<feof>
37120919 429
4d0de388 430Not implemented. Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
37120919 431
41cd218c 432=item C<ferror>
37120919 433
4d0de388 434Not implemented. Use method C<IO::Handle::error()> instead.
37120919 435
41cd218c 436=item C<fflush>
37120919 437
4d0de388 438Not implemented. Use method C<IO::Handle::flush()> instead.
41cd218c 439See also C<L<perlvar/$OUTPUT_AUTOFLUSH>>.
37120919 440
41cd218c 441=item C<fgetc>
37120919 442
4d0de388 443Not implemented. Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
37120919 444
41cd218c 445=item C<fgetpos>
37120919 446
4d0de388 447Not implemented. Use method C<IO::Seekable::getpos()> instead, or see L<perlfunc/seek>.
37120919 448
41cd218c 449=item C<fgets>
37120919 450
4d0de388 451Not implemented. Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known
4755096e 452as L<perlfunc/readline>.
37120919 453
41cd218c 454=item C<fileno>
37120919 455
4d0de388 456Not implemented. Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
37120919 457
41cd218c 458=item C<floor>
37120919 459
4755096e
GS
460This is identical to the C function C<floor()>, returning the largest
461integer value less than or equal to the numerical argument.
37120919 462
9d233e12
JH
463=item C<fdim>
464
4d0de388 465"Positive difference", S<C<x - y>> if S<C<x E<gt> y>>, zero otherwise [C99].
9d233e12
JH
466
467=item C<fegetround>
468
469Returns the current floating point rounding mode, one of
470
387e2cd4 471 FE_TONEAREST FE_TOWARDZERO FE_UPWARD FE_DOWNWARD
9d233e12 472
4d0de388 473C<FE_TONEAREST> is like L</round>, C<FE_TOWARDZERO> is like L</trunc> [C99].
9d233e12
JH
474
475=item C<fesetround>
476
d7a0f0b0 477Sets the floating point rounding mode, see L</fegetround> [C99].
9d233e12
JH
478
479=item C<fma>
480
4d0de388 481"Fused multiply-add", S<C<x * y + z>>, possibly faster (and less lossy)
9d233e12
JH
482than the explicit two operations [C99].
483
4d0de388
KW
484 my $fused = POSIX::fma($x, $y, $z);
485
9d233e12
JH
486=item C<fmax>
487
4d0de388
KW
488Maximum of C<x> and C<y>, except when either is C<NaN>, returns the other [C99].
489
490 my $min = POSIX::fmax($x, $y);
9d233e12
JH
491
492=item C<fmin>
493
4d0de388
KW
494Minimum of C<x> and C<y>, except when either is C<NaN>, returns the other [C99].
495
496 my $min = POSIX::fmin($x, $y);
9d233e12 497
41cd218c 498=item C<fmod>
37120919
AD
499
500This is identical to the C function C<fmod()>.
501
847f7ebc 502 $r = fmod($x, $y);
4755096e 503
4d0de388 504It returns the remainder S<C<$r = $x - $n*$y>>, where S<C<$n = trunc($x/$y)>>.
4755096e
GS
505The C<$r> has the same sign as C<$x> and magnitude (absolute value)
506less than the magnitude of C<$y>.
507
41cd218c 508=item C<fopen>
37120919 509
4d0de388 510Not implemented. Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
37120919 511
41cd218c 512=item C<fork>
37120919 513
c2e66d9e
GS
514This is identical to Perl's builtin C<fork()> function
515for duplicating the current process, see L<perlfunc/fork>
516and L<perlfork> if you are in Windows.
37120919 517
41cd218c 518=item C<fpathconf>
37120919 519
cb1a09d0
AD
520Retrieves the value of a configurable limit on a file or directory. This
521uses file descriptors such as those obtained by calling C<POSIX::open>.
522
523The following will determine the maximum length of the longest allowable
f703fc96 524pathname on the filesystem which holds F</var/foo>.
cb1a09d0 525
2359510d 526 $fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY );
b70c169c 527 $path_max = POSIX::fpathconf($fd, &POSIX::_PC_PATH_MAX);
37120919
AD
528
529Returns C<undef> on failure.
530
9d233e12
JH
531=item C<fpclassify>
532
533Returns one of
534
535 FP_NORMAL FP_ZERO FP_SUBNORMAL FP_INFINITE FP_NAN
536
d7a0f0b0
JH
537telling the class of the argument [C99]. C<FP_INFINITE> is positive
538or negative infinity, C<FP_NAN> is not-a-number. C<FP_SUBNORMAL>
539means subnormal numbers (also known as denormals), very small numbers
540with low precision. C<FP_ZERO> is zero. C<FP_NORMAL> is all the rest.
9d233e12 541
41cd218c 542=item C<fprintf>
37120919 543
4d0de388 544Not implemented. C<fprintf()> is C-specific, see L<perlfunc/printf> instead.
37120919 545
41cd218c 546=item C<fputc>
37120919 547
4d0de388 548Not implemented. C<fputc()> is C-specific, see L<perlfunc/print> instead.
37120919 549
41cd218c 550=item C<fputs>
37120919 551
4d0de388 552Not implemented. C<fputs()> is C-specific, see L<perlfunc/print> instead.
37120919 553
41cd218c 554=item C<fread>
37120919 555
4d0de388 556Not implemented. C<fread()> is C-specific, see L<perlfunc/read> instead.
37120919 557
41cd218c 558=item C<free>
37120919 559
4d0de388 560Not implemented. C<free()> is C-specific. Perl does memory management transparently.
37120919 561
41cd218c 562=item C<freopen>
37120919 563
4d0de388 564Not implemented. C<freopen()> is C-specific, see L<perlfunc/open> instead.
37120919 565
41cd218c 566=item C<frexp>
37120919 567
cb1a09d0
AD
568Return the mantissa and exponent of a floating-point number.
569
4755096e 570 ($mantissa, $exponent) = POSIX::frexp( 1.234e56 );
37120919 571
41cd218c 572=item C<fscanf>
37120919 573
4d0de388 574Not implemented. C<fscanf()> is C-specific, use E<lt>E<gt> and regular expressions instead.
37120919 575
41cd218c 576=item C<fseek>
37120919 577
4d0de388 578Not implemented. Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
37120919 579
41cd218c 580=item C<fsetpos>
37120919 581
4d0de388 582Not implemented. Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
37120919 583
41cd218c 584=item C<fstat>
37120919 585
cb1a09d0
AD
586Get file status. This uses file descriptors such as those obtained by
587calling C<POSIX::open>. The data returned is identical to the data from
588Perl's builtin C<stat> function.
589
590 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
591 @stats = POSIX::fstat( $fd );
37120919 592
41cd218c 593=item C<fsync>
f0709b24 594
4d0de388 595Not implemented. Use method C<IO::Handle::sync()> instead.
f0709b24 596
41cd218c 597=item C<ftell>
37120919 598
4d0de388 599Not implemented. Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
37120919 600
41cd218c 601=item C<fwrite>
37120919 602
4d0de388 603Not implemented. C<fwrite()> is C-specific, see L<perlfunc/print> instead.
37120919 604
41cd218c 605=item C<getc>
37120919 606
4755096e
GS
607This is identical to Perl's builtin C<getc()> function,
608see L<perlfunc/getc>.
37120919 609
41cd218c 610=item C<getchar>
37120919 611
4755096e
GS
612Returns one character from STDIN. Identical to Perl's C<getc()>,
613see L<perlfunc/getc>.
37120919 614
41cd218c 615=item C<getcwd>
37120919
AD
616
617Returns the name of the current working directory.
4755096e 618See also L<Cwd>.
37120919 619
41cd218c 620=item C<getegid>
37120919 621
4755096e
GS
622Returns the effective group identifier. Similar to Perl' s builtin
623variable C<$(>, see L<perlvar/$EGID>.
37120919 624
41cd218c 625=item C<getenv>
37120919 626
d7f8936a 627Returns the value of the specified environment variable.
4755096e 628The same information is available through the C<%ENV> array.
37120919 629
41cd218c 630=item C<geteuid>
37120919 631
4755096e
GS
632Returns the effective user identifier. Identical to Perl's builtin C<$E<gt>>
633variable, see L<perlvar/$EUID>.
37120919 634
41cd218c 635=item C<getgid>
37120919 636
4755096e
GS
637Returns the user's real group identifier. Similar to Perl's builtin
638variable C<$)>, see L<perlvar/$GID>.
37120919 639
41cd218c 640=item C<getgrgid>
37120919 641
4755096e
GS
642This is identical to Perl's builtin C<getgrgid()> function for
643returning group entries by group identifiers, see
644L<perlfunc/getgrgid>.
37120919 645
41cd218c 646=item C<getgrnam>
37120919 647
4755096e
GS
648This is identical to Perl's builtin C<getgrnam()> function for
649returning group entries by group names, see L<perlfunc/getgrnam>.
37120919 650
41cd218c 651=item C<getgroups>
37120919 652
4755096e
GS
653Returns the ids of the user's supplementary groups. Similar to Perl's
654builtin variable C<$)>, see L<perlvar/$GID>.
37120919 655
41cd218c 656=item C<getlogin>
37120919 657
4755096e
GS
658This is identical to Perl's builtin C<getlogin()> function for
659returning the user name associated with the current session, see
660L<perlfunc/getlogin>.
37120919 661
07bb61ac
JH
662=item C<getpayload>
663
664 use POSIX ':nan_payload';
665 getpayload($var)
666
667Returns the C<NaN> payload.
668
669Note the API instability warning in L</setpayload>.
670
671See L</nan> for more discussion about C<NaN>.
672
41cd218c 673=item C<getpgrp>
37120919 674
4755096e 675This is identical to Perl's builtin C<getpgrp()> function for
d7f8936a 676returning the process group identifier of the current process, see
4755096e 677L<perlfunc/getpgrp>.
37120919 678
41cd218c 679=item C<getpid>
37120919 680
4755096e
GS
681Returns the process identifier. Identical to Perl's builtin
682variable C<$$>, see L<perlvar/$PID>.
37120919 683
41cd218c 684=item C<getppid>
37120919 685
4755096e
GS
686This is identical to Perl's builtin C<getppid()> function for
687returning the process identifier of the parent process of the current
688process , see L<perlfunc/getppid>.
37120919 689
41cd218c 690=item C<getpwnam>
37120919 691
4755096e
GS
692This is identical to Perl's builtin C<getpwnam()> function for
693returning user entries by user names, see L<perlfunc/getpwnam>.
37120919 694
41cd218c 695=item C<getpwuid>
37120919 696
4755096e
GS
697This is identical to Perl's builtin C<getpwuid()> function for
698returning user entries by user identifiers, see L<perlfunc/getpwuid>.
37120919 699
41cd218c 700=item C<gets>
37120919 701
4755096e
GS
702Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known
703as the C<readline()> function, see L<perlfunc/readline>.
704
705B<NOTE>: if you have C programs that still use C<gets()>, be very
706afraid. The C<gets()> function is a source of endless grief because
707it has no buffer overrun checks. It should B<never> be used. The
708C<fgets()> function should be preferred instead.
37120919 709
41cd218c 710=item C<getuid>
37120919 711
4755096e
GS
712Returns the user's identifier. Identical to Perl's builtin C<$E<lt>> variable,
713see L<perlvar/$UID>.
37120919 714
41cd218c 715=item C<gmtime>
37120919 716
4755096e
GS
717This is identical to Perl's builtin C<gmtime()> function for
718converting seconds since the epoch to a date in Greenwich Mean Time,
719see L<perlfunc/gmtime>.
37120919 720
9d233e12
JH
721=item C<hypot>
722
4d0de388 723Equivalent to C<S<sqrt(x * x + y * y)>> except more stable on very large
9d233e12
JH
724or very small arguments [C99].
725
726=item C<ilogb>
727
351ab2ad 728Integer binary logarithm [C99]
9d233e12 729
4d0de388 730For example C<ilogb(20)> is 4, as an integer.
351ab2ad
JH
731
732See also L</logb>.
9d233e12 733
d7a0f0b0
JH
734=item C<Inf>
735
736The infinity as a constant:
737
738 use POSIX qw(Inf);
739 my $pos_inf = +Inf; # Or just Inf.
740 my $neg_inf = -Inf;
741
742See also L</isinf>, and L</fpclassify>.
743
41cd218c 744=item C<isalnum>
37120919 745
47ed9d9e
KW
746This function has been removed as of v5.24. It was very similar to
747matching against S<C<qr/ ^ [[:alnum:]]+ $ /x>>, which you should convert
748to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 749
41cd218c 750=item C<isalpha>
37120919 751
47ed9d9e
KW
752This function has been removed as of v5.24. It was very similar to
753matching against S<C<qr/ ^ [[:alpha:]]+ $ /x>>, which you should convert
754to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 755
41cd218c 756=item C<isatty>
37120919
AD
757
758Returns a boolean indicating whether the specified filehandle is connected
4755096e 759to a tty. Similar to the C<-t> operator, see L<perlfunc/-X>.
37120919 760
41cd218c 761=item C<iscntrl>
37120919 762
47ed9d9e
KW
763This function has been removed as of v5.24. It was very similar to
764matching against S<C<qr/ ^ [[:cntrl:]]+ $ /x>>, which you should convert
765to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 766
41cd218c 767=item C<isdigit>
37120919 768
47ed9d9e
KW
769This function has been removed as of v5.24. It was very similar to
770matching against S<C<qr/ ^ [[:digit:]]+ $ /x>>, which you should convert
771to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 772
9d233e12
JH
773=item C<isfinite>
774
775Returns true if the argument is a finite number (that is, not an
776infinity, or the not-a-number) [C99].
777
3823048b 778See also L</isinf>, L</isnan>, and L</fpclassify>.
9d233e12 779
41cd218c 780=item C<isgraph>
37120919 781
47ed9d9e
KW
782This function has been removed as of v5.24. It was very similar to
783matching against S<C<qr/ ^ [[:graph:]]+ $ /x>>, which you should convert
784to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 785
9d233e12
JH
786=item C<isgreater>
787
788(Also C<isgreaterequal>, C<isless>, C<islessequal>, C<islessgreater>,
789C<isunordered>)
790
4d0de388 791Floating point comparisons which handle the C<NaN> [C99].
9d233e12
JH
792
793=item C<isinf>
794
795Returns true if the argument is an infinity (positive or negative) [C99].
796
d7a0f0b0 797See also L</Inf>, L</isnan>, L</isfinite>, and L</fpclassify>.
9d233e12 798
41cd218c 799=item C<islower>
37120919 800
47ed9d9e
KW
801This function has been removed as of v5.24. It was very similar to
802matching against S<C<qr/ ^ [[:lower:]]+ $ /x>>, which you should convert
803to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 804
9d233e12
JH
805=item C<isnan>
806
4d0de388 807Returns true if the argument is C<NaN> (not-a-number) [C99].
9d233e12 808
4d0de388 809Note that you cannot test for "C<NaN>-ness" with
9d233e12
JH
810
811 $x == $x
812
4d0de388 813since the C<NaN> is not equivalent to anything, B<including itself>.
9d233e12 814
d7a0f0b0 815See also L</nan>, L</NaN>, L</isinf>, and L</fpclassify>.
9d233e12
JH
816
817=item C<isnormal>
818
819Returns true if the argument is normal (that is, not a subnormal/denormal,
820and not an infinity, or a not-a-number) [C99].
821
822See also L</isfinite>, and L</fpclassify>.
823
41cd218c 824=item C<isprint>
37120919 825
47ed9d9e
KW
826This function has been removed as of v5.24. It was very similar to
827matching against S<C<qr/ ^ [[:print:]]+ $ /x>>, which you should convert
828to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 829
41cd218c 830=item C<ispunct>
37120919 831
47ed9d9e
KW
832This function has been removed as of v5.24. It was very similar to
833matching against S<C<qr/ ^ [[:punct:]]+ $ /x>>, which you should convert
834to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 835
07bb61ac
JH
836=item C<issignaling>
837
838 use POSIX ':nan_payload';
839 issignaling($var, $payload)
840
841Return true if the argument is a I<signaling> NaN.
842
843Note the API instability warning in L</setpayload>.
844
845See L</nan> for more discussion about C<NaN>.
846
41cd218c 847=item C<isspace>
37120919 848
47ed9d9e
KW
849This function has been removed as of v5.24. It was very similar to
850matching against S<C<qr/ ^ [[:space:]]+ $ /x>>, which you should convert
851to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 852
41cd218c 853=item C<isupper>
37120919 854
47ed9d9e
KW
855This function has been removed as of v5.24. It was very similar to
856matching against S<C<qr/ ^ [[:upper:]]+ $ /x>>, which you should convert
857to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 858
41cd218c 859=item C<isxdigit>
37120919 860
47ed9d9e
KW
861This function has been removed as of v5.24. It was very similar to
862matching against S<C<qr/ ^ [[:xdigit:]]+ $ /x>>, which you should
863convert to use instead. See L<perlrecharclass/POSIX Character Classes>.
37120919 864
9d233e12
JH
865=item C<j0>
866
98ab3abf
AP
867=item C<j1>
868
869=item C<jn>
870
871=item C<y0>
872
873=item C<y1>
874
875=item C<yn>
9d233e12
JH
876
877The Bessel function of the first kind of the order zero.
878
41cd218c 879=item C<kill>
37120919 880
4755096e 881This is identical to Perl's builtin C<kill()> function for sending
c2e66d9e 882signals to processes (often to terminate them), see L<perlfunc/kill>.
37120919 883
41cd218c 884=item C<labs>
37120919 885
4d0de388 886Not implemented. (For returning absolute values of long integers.)
41cd218c 887C<labs()> is C-specific, see L<perlfunc/abs> instead.
37120919 888
41cd218c 889=item C<lchown>
c5eef087
DFC
890
891This is identical to the C function, except the order of arguments is
892consistent with Perl's builtin C<chown()> with the added restriction
4d0de388
KW
893of only one path, not a list of paths. Does the same thing as the
894C<chown()> function but changes the owner of a symbolic link instead
c5eef087
DFC
895of the file the symbolic link points to.
896
4d0de388
KW
897 POSIX::lchown($uid, $gid, $file_path);
898
41cd218c 899=item C<ldexp>
37120919 900
4755096e
GS
901This is identical to the C function C<ldexp()>
902for multiplying floating point numbers with powers of two.
903
904 $x_quadrupled = POSIX::ldexp($x, 2);
37120919 905
41cd218c 906=item C<ldiv>
37120919 907
4d0de388 908Not implemented. (For computing dividends of long integers.)
41cd218c 909C<ldiv()> is C-specific, use C</> and C<int()> instead.
37120919 910
9d233e12
JH
911=item C<lgamma>
912
913The logarithm of the Gamma function [C99].
914
915See also L</tgamma>.
916
917=item C<log1p>
918
4d0de388 919Equivalent to S<C<log(1 + x)>>, but more stable results for small argument
9d233e12
JH
920values [C99].
921
922=item C<log2>
923
924Logarithm base two [C99].
925
926See also L</expm1>.
927
928=item C<logb>
929
930Integer binary logarithm [C99].
931
4d0de388 932For example C<logb(20)> is 4, as a floating point number.
351ab2ad
JH
933
934See also L</ilogb>.
9d233e12 935
41cd218c 936=item C<link>
37120919 937
4755096e
GS
938This is identical to Perl's builtin C<link()> function
939for creating hard links into files, see L<perlfunc/link>.
37120919 940
41cd218c 941=item C<localeconv>
37120919 942
cb1a09d0 943Get numeric formatting information. Returns a reference to a hash
a835cd47 944containing the current underlying locale's formatting values. Users of this function
dfcc8045
KW
945should also read L<perllocale>, which provides a comprehensive
946discussion of Perl locale handling, including
947L<a section devoted to this function|perllocale/The localeconv function>.
e9bc6d6b 948Prior to Perl 5.28, or when operating in a non thread-safe environment,
8b24ca2d 949it should not be used in a threaded application unless it's certain that
aa2bc4d3
KW
950the underlying locale is C or POSIX. This is because it otherwise
951changes the locale, which globally affects all threads simultaneously.
69c5e0db
KW
952Windows platforms starting with Visual Studio 2005 are mostly
953thread-safe, but use of this function in those prior to Visual Studio
9542015 can interefere with a thread that has called
955L<perlapi/switch_to_global_locale>.
cb1a09d0 956
4755096e 957Here is how to query the database for the B<de> (Deutsch or German) locale.
cb1a09d0 958
c4e34987
DP
959 my $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
960 print "Locale: \"$loc\"\n";
961 my $lconv = POSIX::localeconv();
962 foreach my $property (qw(
963 decimal_point
964 thousands_sep
965 grouping
966 int_curr_symbol
967 currency_symbol
968 mon_decimal_point
969 mon_thousands_sep
970 mon_grouping
971 positive_sign
972 negative_sign
973 int_frac_digits
974 frac_digits
975 p_cs_precedes
976 p_sep_by_space
977 n_cs_precedes
978 n_sep_by_space
979 p_sign_posn
980 n_sign_posn
b15c1b56
AF
981 int_p_cs_precedes
982 int_p_sep_by_space
983 int_n_cs_precedes
984 int_n_sep_by_space
985 int_p_sign_posn
986 int_n_sign_posn
c4e34987
DP
987 ))
988 {
b70c169c
FC
989 printf qq(%s: "%s",\n),
990 $property, $lconv->{$property};
c4e34987 991 }
37120919 992
4d0de388
KW
993The members whose names begin with C<int_p_> and C<int_n_> were added by
994POSIX.1-2008 and are only available on systems that support them.
b15c1b56 995
41cd218c 996=item C<localtime>
37120919 997
4755096e 998This is identical to Perl's builtin C<localtime()> function for
dc416353
JK
999converting seconds since the epoch to a date see L<perlfunc/localtime> except
1000that C<POSIX::localtime()> must be provided an explicit value (rather than
bda53d3e 1001relying on an implicit C<$_>):
dc416353 1002
bda53d3e 1003 @localtime = POSIX::localtime(time); # good
dc416353 1004
bda53d3e 1005 @localtime = localtime(); # good
dc416353 1006
bda53d3e 1007 @localtime = POSIX::localtime(); # throws exception
37120919 1008
41cd218c 1009=item C<log>
37120919 1010
4755096e
GS
1011This is identical to Perl's builtin C<log()> function,
1012returning the natural (I<e>-based) logarithm of the numerical argument,
1013see L<perlfunc/log>.
37120919 1014
41cd218c 1015=item C<log10>
37120919 1016
4755096e
GS
1017This is identical to the C function C<log10()>,
1018returning the 10-base logarithm of the numerical argument.
1019You can also use
1020
1021 sub log10 { log($_[0]) / log(10) }
1022
1023or
1024
3609ea0d 1025 sub log10 { log($_[0]) / 2.30258509299405 }
4755096e
GS
1026
1027or
1028
1029 sub log10 { log($_[0]) * 0.434294481903252 }
37120919 1030
41cd218c 1031=item C<longjmp>
37120919 1032
4d0de388 1033Not implemented. C<longjmp()> is C-specific: use L<perlfunc/die> instead.
37120919 1034
41cd218c 1035=item C<lseek>
37120919 1036
8903cb82 1037Move the file's read/write position. This uses file descriptors such as
cb1a09d0
AD
1038those obtained by calling C<POSIX::open>.
1039
1040 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
1041 $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
37120919
AD
1042
1043Returns C<undef> on failure.
1044
9d233e12
JH
1045=item C<lrint>
1046
351ab2ad
JH
1047Depending on the current floating point rounding mode, rounds the
1048argument either toward nearest (like L</round>), toward zero (like
1049L</trunc>), downward (toward negative infinity), or upward (toward
1050positive infinity) [C99].
9d233e12 1051
351ab2ad 1052For the rounding mode, see L</fegetround>.
9d233e12 1053
9e010b89
JH
1054=item C<lround>
1055
1056Like L</round>, but as integer, as opposed to floating point [C99].
1057
1058See also L</ceil>, L</floor>, L</trunc>.
1059
25a9f0e7
AC
1060Owing to an oversight, this is not currently exported by default, or as part of
1061the C<:math_h_c99> export tag; importing it must therefore be done by explicit
abc9e18b 1062name.
25a9f0e7 1063
41cd218c 1064=item C<malloc>
37120919 1065
4d0de388 1066Not implemented. C<malloc()> is C-specific. Perl does memory management transparently.
37120919 1067
41cd218c 1068=item C<mblen>
37120919 1069
cb1a09d0 1070This is identical to the C function C<mblen()>.
351ab2ad
JH
1071
1072Core Perl does not have any support for the wide and multibyte
4d0de388
KW
1073characters of the C standards, except under UTF-8 locales, so this might
1074be a rather useless function.
351ab2ad
JH
1075
1076However, Perl supports Unicode, see L<perluniintro>.
37120919 1077
41cd218c 1078=item C<mbstowcs>
37120919 1079
cb1a09d0 1080This is identical to the C function C<mbstowcs()>.
351ab2ad
JH
1081
1082See L</mblen>.
37120919 1083
41cd218c 1084=item C<mbtowc>
37120919 1085
cb1a09d0 1086This is identical to the C function C<mbtowc()>.
351ab2ad
JH
1087
1088See L</mblen>.
37120919 1089
41cd218c 1090=item C<memchr>
37120919 1091
4d0de388 1092Not implemented. C<memchr()> is C-specific, see L<perlfunc/index> instead.
37120919 1093
41cd218c 1094=item C<memcmp>
37120919 1095
4d0de388 1096Not implemented. C<memcmp()> is C-specific, use C<eq> instead, see L<perlop>.
37120919 1097
41cd218c 1098=item C<memcpy>
37120919 1099
4d0de388 1100Not implemented. C<memcpy()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
37120919 1101
41cd218c 1102=item C<memmove>
37120919 1103
4d0de388 1104Not implemented. C<memmove()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
37120919 1105
41cd218c 1106=item C<memset>
37120919 1107
4d0de388 1108Not implemented. C<memset()> is C-specific, use C<x> instead, see L<perlop>.
37120919 1109
41cd218c 1110=item C<mkdir>
37120919 1111
4755096e
GS
1112This is identical to Perl's builtin C<mkdir()> function
1113for creating directories, see L<perlfunc/mkdir>.
37120919 1114
41cd218c 1115=item C<mkfifo>
37120919 1116
4755096e
GS
1117This is similar to the C function C<mkfifo()> for creating
1118FIFO special files.
37120919 1119
4755096e
GS
1120 if (mkfifo($path, $mode)) { ....
1121
1122Returns C<undef> on failure. The C<$mode> is similar to the
220f811a
JH
1123mode of C<mkdir()>, see L<perlfunc/mkdir>, though for C<mkfifo>
1124you B<must> specify the C<$mode>.
37120919 1125
41cd218c 1126=item C<mktime>
37120919 1127
cb1a09d0
AD
1128Convert date/time info to a calendar time.
1129
1130Synopsis:
1131
b70c169c
FC
1132 mktime(sec, min, hour, mday, mon, year, wday = 0,
1133 yday = 0, isdst = -1)
cb1a09d0 1134
4d0de388
KW
1135The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero,
1136I<i.e.>, January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
1137year (C<year>) is given in years since 1900; I<i.e.>, the year 1995 is 95; the
cb1a09d0
AD
1138year 2001 is 101. Consult your system's C<mktime()> manpage for details
1139about these and the other arguments.
1140
1141Calendar time for December 12, 1995, at 10:30 am.
1142
1143 $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
1144 print "Date = ", POSIX::ctime($time_t);
37120919
AD
1145
1146Returns C<undef> on failure.
1147
41cd218c 1148=item C<modf>
37120919 1149
cb1a09d0
AD
1150Return the integral and fractional parts of a floating-point number.
1151
1152 ($fractional, $integral) = POSIX::modf( 3.14 );
37120919 1153
351ab2ad
JH
1154See also L</round>.
1155
d7a0f0b0
JH
1156=item C<NaN>
1157
1158The not-a-number as a constant:
1159
1160 use POSIX qw(NaN);
1161 my $nan = NaN;
1162
1163See also L</nan>, C</isnan>, and L</fpclassify>.
1164
9d233e12
JH
1165=item C<nan>
1166
07bb61ac
JH
1167 my $nan = nan();
1168
1169Returns C<NaN>, not-a-number [C99].
1170
1171The returned NaN is always a I<quiet> NaN, as opposed to I<signaling>.
1172
1173With an argument, can be used to generate a NaN with I<payload>.
1174The argument is first interpreted as a floating point number,
1175but then any fractional parts are truncated (towards zero),
1176and the value is interpreted as an unsigned integer.
1177The bits of this integer are stored in the unused bits of the NaN.
1178
1179The result has a dual nature: it is a NaN, but it also carries
1180the integer inside it. The integer can be retrieved with L</getpayload>.
1181Note, though, that the payload is not propagated, not even on copies,
1182and definitely not in arithmetic operations.
1183
1184How many bits fit in the NaN depends on what kind of floating points
1185are being used, but on the most common platforms (64-bit IEEE 754,
1186or the x86 80-bit long doubles) there are 51 and 61 bits available,
1187respectively. (There would be 52 and 62, but the quiet/signaling
1188bit of NaNs takes away one.) However, because of the floating-point-to-
1189integer-and-back conversions, please test carefully whether you get back
1190what you put in. If your integers are only 32 bits wide, you probably
1191should not rely on more than 32 bits of payload.
9d233e12 1192
07bb61ac
JH
1193Whether a "signaling" NaN is in any way different from a "quiet" NaN,
1194depends on the platform. Also note that the payload of the default
1195NaN (no argument to nan()) is not necessarily zero, use C<setpayload>
8384a6d6
JH
1196to explicitly set the payload. On some platforms like the 32-bit x86,
1197(unless using the 80-bit long doubles) the signaling bit is not supported
1198at all.
07bb61ac 1199
d7a0f0b0 1200See also L</isnan>, L</NaN>, L</setpayload> and L</issignaling>.
351ab2ad 1201
9d233e12
JH
1202=item C<nearbyint>
1203
1204Returns the nearest integer to the argument, according to the current
1205rounding mode (see L</fegetround>) [C99].
1206
1207=item C<nextafter>
1208
4d0de388
KW
1209Returns the next representable floating point number after C<x> in the
1210direction of C<y> [C99].
1211
1212 my $nextafter = POSIX::nextafter($x, $y);
9d233e12
JH
1213
1214Like L</nexttoward>, but potentially less accurate.
1215
1216=item C<nexttoward>
1217
4d0de388
KW
1218Returns the next representable floating point number after C<x> in the
1219direction of C<y> [C99].
1220
1221 my $nexttoward = POSIX::nexttoward($x, $y);
9d233e12
JH
1222
1223Like L</nextafter>, but potentially more accurate.
1224
41cd218c 1225=item C<nice>
37120919 1226
4755096e
GS
1227This is similar to the C function C<nice()>, for changing
1228the scheduling preference of the current process. Positive
4d0de388
KW
1229arguments mean a more polite process, negative values a more
1230needy process. Normal (non-root) user processes can only change towards
1231being more polite.
37120919
AD
1232
1233Returns C<undef> on failure.
1234
41cd218c 1235=item C<offsetof>
37120919 1236
4d0de388 1237Not implemented. C<offsetof()> is C-specific, you probably want to see L<perlfunc/pack> instead.
37120919 1238
41cd218c 1239=item C<open>
37120919 1240
cb1a09d0
AD
1241Open a file for reading for writing. This returns file descriptors, not
1242Perl filehandles. Use C<POSIX::close> to close the file.
1243
1244Open a file read-only with mode 0666.
1245
1246 $fd = POSIX::open( "foo" );
1247
1248Open a file for read and write.
1249
1250 $fd = POSIX::open( "foo", &POSIX::O_RDWR );
1251
1252Open a file for write, with truncation.
1253
b70c169c
FC
1254 $fd = POSIX::open(
1255 "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC
1256 );
cb1a09d0
AD
1257
1258Create a new file with mode 0640. Set up the file for writing.
1259
b70c169c
FC
1260 $fd = POSIX::open(
1261 "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640
1262 );
37120919
AD
1263
1264Returns C<undef> on failure.
1265
4755096e
GS
1266See also L<perlfunc/sysopen>.
1267
41cd218c 1268=item C<opendir>
37120919 1269
cb1a09d0
AD
1270Open a directory for reading.
1271
2359510d 1272 $dir = POSIX::opendir( "/var" );
cb1a09d0
AD
1273 @files = POSIX::readdir( $dir );
1274 POSIX::closedir( $dir );
1275
1276Returns C<undef> on failure.
37120919 1277
41cd218c 1278=item C<pathconf>
37120919
AD
1279
1280Retrieves the value of a configurable limit on a file or directory.
1281
1282The following will determine the maximum length of the longest allowable
2359510d 1283pathname on the filesystem which holds C</var>.
37120919 1284
b70c169c
FC
1285 $path_max = POSIX::pathconf( "/var",
1286 &POSIX::_PC_PATH_MAX );
37120919
AD
1287
1288Returns C<undef> on failure.
1289
41cd218c 1290=item C<pause>
37120919 1291
4755096e
GS
1292This is similar to the C function C<pause()>, which suspends
1293the execution of the current process until a signal is received.
37120919
AD
1294
1295Returns C<undef> on failure.
1296
41cd218c 1297=item C<perror>
37120919 1298
4755096e 1299This is identical to the C function C<perror()>, which outputs to the
41cd218c 1300standard error stream the specified message followed by C<": "> and the
4755096e
GS
1301current error string. Use the C<warn()> function and the C<$!>
1302variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
37120919 1303
41cd218c 1304=item C<pipe>
37120919 1305
cb1a09d0
AD
1306Create an interprocess channel. This returns file descriptors like those
1307returned by C<POSIX::open>.
1308
b27d06da
MS
1309 my ($read, $write) = POSIX::pipe();
1310 POSIX::write( $write, "hello", 5 );
1311 POSIX::read( $read, $buf, 5 );
37120919 1312
4755096e
GS
1313See also L<perlfunc/pipe>.
1314
41cd218c 1315=item C<pow>
37120919 1316
4755096e 1317Computes C<$x> raised to the power C<$exponent>.
37120919
AD
1318
1319 $ret = POSIX::pow( $x, $exponent );
1320
4755096e
GS
1321You can also use the C<**> operator, see L<perlop>.
1322
41cd218c 1323=item C<printf>
37120919 1324
4d0de388 1325Formats and prints the specified arguments to C<STDOUT>.
4755096e 1326See also L<perlfunc/printf>.
37120919 1327
41cd218c 1328=item C<putc>
37120919 1329
4d0de388 1330Not implemented. C<putc()> is C-specific, see L<perlfunc/print> instead.
37120919 1331
41cd218c 1332=item C<putchar>
37120919 1333
4d0de388 1334Not implemented. C<putchar()> is C-specific, see L<perlfunc/print> instead.
37120919 1335
41cd218c 1336=item C<puts>
37120919 1337
4d0de388 1338Not implemented. C<puts()> is C-specific, see L<perlfunc/print> instead.
37120919 1339
41cd218c 1340=item C<qsort>
37120919 1341
4d0de388 1342Not implemented. C<qsort()> is C-specific, see L<perlfunc/sort> instead.
37120919 1343
41cd218c 1344=item C<raise>
37120919
AD
1345
1346Sends the specified signal to the current process.
4755096e 1347See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
37120919 1348
41cd218c 1349=item C<rand>
37120919 1350
4d0de388 1351Not implemented. C<rand()> is non-portable, see L<perlfunc/rand> instead.
37120919 1352
41cd218c 1353=item C<read>
37120919 1354
cb1a09d0
AD
1355Read from a file. This uses file descriptors such as those obtained by
1356calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
1357read then Perl will extend it to make room for the request.
1358
1359 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
1360 $bytes = POSIX::read( $fd, $buf, 3 );
37120919
AD
1361
1362Returns C<undef> on failure.
1363
4755096e
GS
1364See also L<perlfunc/sysread>.
1365
41cd218c 1366=item C<readdir>
37120919 1367
4755096e
GS
1368This is identical to Perl's builtin C<readdir()> function
1369for reading directory entries, see L<perlfunc/readdir>.
37120919 1370
41cd218c 1371=item C<realloc>
37120919 1372
4d0de388 1373Not implemented. C<realloc()> is C-specific. Perl does memory management transparently.
37120919 1374
9d233e12
JH
1375=item C<remainder>
1376
4d0de388 1377Given C<x> and C<y>, returns the value S<C<x - n*y>>, where C<n> is the integer
56966515 1378closest to C<x>/C<y>. [C99]
4d0de388
KW
1379
1380 my $remainder = POSIX::remainder($x, $y)
9d233e12
JH
1381
1382See also L</remquo>.
1383
41cd218c 1384=item C<remove>
37120919 1385
c6f0b8ca
TC
1386Deletes a name from the filesystem. Calls L<perlfunc/unlink> for
1387files and L<perlfunc/rmdir> for directories.
37120919 1388
9d233e12
JH
1389=item C<remquo>
1390
1391Like L</remainder> but also returns the low-order bits of the quotient (n)
1392[C99]
1393
1394(This is quite esoteric interface, mainly used to implement numerical
1395algorithms.)
1396
41cd218c 1397=item C<rename>
37120919 1398
4755096e
GS
1399This is identical to Perl's builtin C<rename()> function
1400for renaming files, see L<perlfunc/rename>.
37120919 1401
41cd218c 1402=item C<rewind>
37120919
AD
1403
1404Seeks to the beginning of the file.
1405
41cd218c 1406=item C<rewinddir>
37120919 1407
4755096e
GS
1408This is identical to Perl's builtin C<rewinddir()> function for
1409rewinding directory entry streams, see L<perlfunc/rewinddir>.
37120919 1410
9d233e12
JH
1411=item C<rint>
1412
1413Identical to L</lrint>.
1414
41cd218c 1415=item C<rmdir>
37120919 1416
4755096e
GS
1417This is identical to Perl's builtin C<rmdir()> function
1418for removing (empty) directories, see L<perlfunc/rmdir>.
37120919 1419
9d233e12
JH
1420=item C<round>
1421
9e010b89
JH
1422Returns the integer (but still as floating point) nearest to the
1423argument [C99].
9d233e12 1424
351ab2ad 1425See also L</ceil>, L</floor>, L</lround>, L</modf>, and L</trunc>.
9d233e12
JH
1426
1427=item C<scalbn>
1428
4d0de388 1429Returns S<C<x * 2**y>> [C99].
9d233e12
JH
1430
1431See also L</frexp> and L</ldexp>.
1432
41cd218c 1433=item C<scanf>
37120919 1434
4d0de388 1435Not implemented. C<scanf()> is C-specific, use E<lt>E<gt> and regular expressions instead,
4755096e 1436see L<perlre>.
37120919 1437
41cd218c 1438=item C<setgid>
37120919 1439
a043a685
GW
1440Sets the real group identifier and the effective group identifier for
1441this process. Similar to assigning a value to the Perl's builtin
2bc0d022 1442C<$)> variable, see L<perlvar/$EGID>, except that the latter
a043a685
GW
1443will change only the real user identifier, and that the setgid()
1444uses only a single numeric argument, as opposed to a space-separated
1445list of numbers.
37120919 1446
41cd218c 1447=item C<setjmp>
37120919 1448
4d0de388 1449Not implemented. C<setjmp()> is C-specific: use C<eval {}> instead,
4755096e 1450see L<perlfunc/eval>.
37120919 1451
41cd218c 1452=item C<setlocale>
37120919 1453
06283613
KW
1454WARNING! Prior to Perl 5.28 or on a system that does not support
1455thread-safe locale operations, do NOT use this function in a
1456L<thread|threads>. The locale will change in all other threads at the
1457same time, and should your thread get paused by the operating system,
1458and another started, that thread will not have the locale it is
1459expecting. On some platforms, there can be a race leading to segfaults
1460if two threads call this function nearly simultaneously. On unthreaded
1461builds, or on Perl 5.28 and later on thread-safe systems, this warning
1462does not apply.
1463
1464This function
1465modifies and queries the program's underlying locale. Users of this
dfcc8045
KW
1466function should read L<perllocale>, whch provides a comprehensive
1467discussion of Perl locale handling, knowledge of which is necessary to
1468properly use this function. It contains
1469L<a section devoted to this function|perllocale/The setlocale function>.
1470The discussion here is merely a summary reference for C<setlocale()>.
6ea81ccf
KW
1471Note that Perl itself is almost entirely unaffected by the locale
1472except within the scope of S<C<"use locale">>. (Exceptions are listed
06283613
KW
1473in L<perllocale/Not within the scope of "use locale">, and
1474locale-dependent functions within the POSIX module ARE always affected
1475by the current locale.)
6ea81ccf
KW
1476
1477The following examples assume
c26abfa6
JH
1478
1479 use POSIX qw(setlocale LC_ALL LC_CTYPE);
1480
1481has been issued.
37120919 1482
8966fa01
JH
1483The following will set the traditional UNIX system locale behavior
1484(the second argument C<"C">).
37120919 1485
c26abfa6 1486 $loc = setlocale( LC_ALL, "C" );
37120919 1487
41cd218c 1488The following will query the current C<LC_CTYPE> category. (No second
c26abfa6 1489argument means 'query'.)
8966fa01 1490
c26abfa6 1491 $loc = setlocale( LC_CTYPE );
8966fa01 1492
41cd218c 1493The following will set the C<LC_CTYPE> behaviour according to the locale
8966fa01 1494environment variables (the second argument C<"">).
4c9b78f4 1495Please see your system's C<setlocale(3)> documentation for the locale
71be2cbc 1496environment variables' meaning or consult L<perllocale>.
8966fa01 1497
c26abfa6 1498 $loc = setlocale( LC_CTYPE, "" );
8966fa01 1499
41cd218c 1500The following will set the C<LC_COLLATE> behaviour to Argentinian
8966fa01 1501Spanish. B<NOTE>: The naming and availability of locales depends on
71be2cbc 1502your operating system. Please consult L<perllocale> for how to find
8966fa01
JH
1503out which locales are available in your system.
1504
801ed997 1505 $loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" );
8966fa01 1506
07bb61ac
JH
1507=item C<setpayload>
1508
1509 use POSIX ':nan_payload';
1510 setpayload($var, $payload);
1511
1512Sets the C<NaN> payload of var.
1513
1514NOTE: the NaN payload APIs are based on the latest (as of June 2015)
1515proposed ISO C interfaces, but they are not yet a standard. Things
1516may change.
1517
1518See L</nan> for more discussion about C<NaN>.
1519
1520See also L</setpayloadsig>, L</isnan>, L</getpayload>, and L</issignaling>.
1521
1522=item C<setpayloadsig>
1523
1524 use POSIX ':nan_payload';
1525 setpayloadsig($var, $payload);
1526
1527Like L</setpayload> but also makes the NaN I<signaling>.
1528
1529Depending on the platform the NaN may or may not behave differently.
1530
1531Note the API instability warning in L</setpayload>.
1532
1533Note that because how the floating point formats work out, on the most
1534common platforms signaling payload of zero is best avoided,
1535since it might end up being identical to C<+Inf>.
1536
1537See also L</nan>, L</isnan>, L</getpayload>, and L</issignaling>.
1538
41cd218c 1539=item C<setpgid>
37120919 1540
4755096e
GS
1541This is similar to the C function C<setpgid()> for
1542setting the process group identifier of the current process.
37120919
AD
1543
1544Returns C<undef> on failure.
1545
41cd218c 1546=item C<setsid>
37120919 1547
4755096e
GS
1548This is identical to the C function C<setsid()> for
1549setting the session identifier of the current process.
37120919 1550
41cd218c 1551=item C<setuid>
37120919 1552
a043a685
GW
1553Sets the real user identifier and the effective user identifier for
1554this process. Similar to assigning a value to the Perl's builtin
1555C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter
1556will change only the real user identifier.
37120919 1557
41cd218c 1558=item C<sigaction>
37120919 1559
3609ea0d
JH
1560Detailed signal management. This uses C<POSIX::SigAction> objects for
1561the C<action> and C<oldaction> arguments (the oldaction can also be
1562just a hash reference). Consult your system's C<sigaction> manpage
1563for details, see also C<POSIX::SigRt>.
cb1a09d0
AD
1564
1565Synopsis:
1566
1d81eac9 1567 sigaction(signal, action, oldaction = 0)
37120919 1568
1d81eac9 1569Returns C<undef> on failure. The C<signal> must be a number (like
41cd218c 1570C<SIGHUP>), not a string (like C<"SIGHUP">), though Perl does try hard
1d81eac9 1571to understand you.
37120919 1572
41cd218c 1573If you use the C<SA_SIGINFO> flag, the signal handler will in addition to
8aad04aa
JH
1574the first argument, the signal name, also receive a second argument, a
1575hash reference, inside which are the following keys with the following
1576semantics, as defined by POSIX/SUSv3:
1577
1578 signo the signal number
1579 errno the error number
1580 code if this is zero or less, the signal was sent by
1581 a user process and the uid and pid make sense,
1582 otherwise the signal was sent by the kernel
79dec0f4 1583
34e79b75
DIM
1584The constants for specific C<code> values can be imported individually
1585or using the C<:signal_h_si_code> tag.
1586
79dec0f4
JH
1587The following are also defined by POSIX/SUSv3, but unfortunately
1588not very widely implemented:
1589
8aad04aa
JH
1590 pid the process id generating the signal
1591 uid the uid of the process id generating the signal
1592 status exit value or signal for SIGCHLD
1593 band band event for SIGPOLL
408b5f5e
KW
1594 addr address of faulting instruction or memory
1595 reference for SIGILL, SIGFPE, SIGSEGV or SIGBUS
8aad04aa
JH
1596
1597A third argument is also passed to the handler, which contains a copy
41cd218c
KW
1598of the raw binary contents of the C<siginfo> structure: if a system has
1599some non-POSIX fields, this third argument is where to C<unpack()> them
8aad04aa
JH
1600from.
1601
41cd218c 1602Note that not all C<siginfo> values make sense simultaneously (some are
8aad04aa
JH
1603valid only for certain signals, for example), and not all values make
1604sense from Perl perspective, you should to consult your system's
1605C<sigaction> and possibly also C<siginfo> documentation.
1606
41cd218c 1607=item C<siglongjmp>
37120919 1608
4d0de388 1609Not implemented. C<siglongjmp()> is C-specific: use L<perlfunc/die> instead.
37120919 1610
9d233e12
JH
1611=item C<signbit>
1612
1613Returns zero for positive arguments, non-zero for negative arguments [C99].
1614
41cd218c 1615=item C<sigpending>
37120919 1616
cb1a09d0
AD
1617Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
1618objects for the C<sigset> argument. Consult your system's C<sigpending>
1619manpage for details.
1620
1621Synopsis:
1622
1623 sigpending(sigset)
37120919
AD
1624
1625Returns C<undef> on failure.
1626
41cd218c 1627=item C<sigprocmask>
37120919 1628
cb1a09d0
AD
1629Change and/or examine calling process's signal mask. This uses
1630C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
1631Consult your system's C<sigprocmask> manpage for details.
1632
1633Synopsis:
1634
1635 sigprocmask(how, sigset, oldsigset = 0)
37120919
AD
1636
1637Returns C<undef> on failure.
1638
faaf6836
LT
1639Note that you can't reliably block or unblock a signal from its own signal
1640handler if you're using safe signals. Other signals can be blocked or unblocked
1641reliably.
1642
41cd218c 1643=item C<sigsetjmp>
37120919 1644
4d0de388 1645Not implemented. C<sigsetjmp()> is C-specific: use C<eval {}> instead,
4755096e 1646see L<perlfunc/eval>.
37120919 1647
41cd218c 1648=item C<sigsuspend>
37120919 1649
cb1a09d0
AD
1650Install a signal mask and suspend process until signal arrives. This uses
1651C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
1652system's C<sigsuspend> manpage for details.
1653
1654Synopsis:
1655
1656 sigsuspend(signal_mask)
37120919
AD
1657
1658Returns C<undef> on failure.
1659
41cd218c 1660=item C<sin>
37120919 1661
4755096e
GS
1662This is identical to Perl's builtin C<sin()> function
1663for returning the sine of the numerical argument,
c2e66d9e 1664see L<perlfunc/sin>. See also L<Math::Trig>.
37120919 1665
41cd218c 1666=item C<sinh>
37120919 1667
4755096e
GS
1668This is identical to the C function C<sinh()>
1669for returning the hyperbolic sine of the numerical argument.
c2e66d9e 1670See also L<Math::Trig>.
37120919 1671
41cd218c 1672=item C<sleep>
37120919 1673
2ab27a20
A
1674This is functionally identical to Perl's builtin C<sleep()> function
1675for suspending the execution of the current for process for certain
3609ea0d 1676number of seconds, see L<perlfunc/sleep>. There is one significant
2bad225e 1677difference, however: C<POSIX::sleep()> returns the number of
2ab27a20
A
1678B<unslept> seconds, while the C<CORE::sleep()> returns the
1679number of slept seconds.
37120919 1680
41cd218c 1681=item C<sprintf>
37120919 1682
4755096e
GS
1683This is similar to Perl's builtin C<sprintf()> function
1684for returning a string that has the arguments formatted as requested,
1685see L<perlfunc/sprintf>.
37120919 1686
41cd218c 1687=item C<sqrt>
37120919
AD
1688
1689This is identical to Perl's builtin C<sqrt()> function.
4755096e
GS
1690for returning the square root of the numerical argument,
1691see L<perlfunc/sqrt>.
37120919 1692
41cd218c 1693=item C<srand>
37120919 1694
4755096e 1695Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
37120919 1696
41cd218c 1697=item C<sscanf>
37120919 1698
4d0de388 1699Not implemented. C<sscanf()> is C-specific, use regular expressions instead,
4755096e 1700see L<perlre>.
37120919 1701
41cd218c 1702=item C<stat>
37120919 1703
4755096e 1704This is identical to Perl's builtin C<stat()> function
d7f8936a 1705for returning information about files and directories.
37120919 1706
41cd218c 1707=item C<strcat>
37120919 1708
4d0de388 1709Not implemented. C<strcat()> is C-specific, use C<.=> instead, see L<perlop>.
37120919 1710
41cd218c 1711=item C<strchr>
37120919 1712
4d0de388 1713Not implemented. C<strchr()> is C-specific, see L<perlfunc/index> instead.
37120919 1714
41cd218c 1715=item C<strcmp>
37120919 1716
4d0de388 1717Not implemented. C<strcmp()> is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
37120919 1718
41cd218c 1719=item C<strcoll>
37120919 1720
4755096e
GS
1721This is identical to the C function C<strcoll()>
1722for collating (comparing) strings transformed using
1723the C<strxfrm()> function. Not really needed since
1724Perl can do this transparently, see L<perllocale>.
37120919 1725
393aa92a
KW
1726Beware that in a UTF-8 locale, anything you pass to this function must
1727be in UTF-8; and when not in a UTF-8 locale, anything passed must not be
1728UTF-8 encoded.
1729
41cd218c 1730=item C<strcpy>
37120919 1731
4d0de388 1732Not implemented. C<strcpy()> is C-specific, use C<=> instead, see L<perlop>.
37120919 1733
41cd218c 1734=item C<strcspn>
37120919 1735
4d0de388 1736Not implemented. C<strcspn()> is C-specific, use regular expressions instead,
4755096e 1737see L<perlre>.
37120919 1738
41cd218c 1739=item C<strerror>
37120919
AD
1740
1741Returns the error string for the specified errno.
4d0de388 1742Identical to the string form of C<$!>, see L<perlvar/$ERRNO>.
37120919 1743
41cd218c 1744=item C<strftime>
37120919 1745
cb1a09d0
AD
1746Convert date and time information to string. Returns the string.
1747
1748Synopsis:
1749
b70c169c
FC
1750 strftime(fmt, sec, min, hour, mday, mon, year,
1751 wday = -1, yday = -1, isdst = -1)
cb1a09d0 1752
4d0de388
KW
1753The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero,
1754I<i.e.>, January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
1755year (C<year>) is given in years since 1900, I<i.e.>, the year 1995 is 95; the
cb1a09d0 1756year 2001 is 101. Consult your system's C<strftime()> manpage for details
659b4938 1757about these and the other arguments.
f14c76ed 1758
659b4938
DD
1759If you want your code to be portable, your format (C<fmt>) argument
1760should use only the conversion specifiers defined by the ANSI C
f14c76ed
RGS
1761standard (C89, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
1762But even then, the B<results> of some of the conversion specifiers are
1763non-portable. For example, the specifiers C<aAbBcpZ> change according
1764to the locale settings of the user, and both how to set locales (the
1765locale names) and what output to expect are non-standard.
1766The specifier C<c> changes according to the timezone settings of the
1767user and the timezone computation rules of the operating system.
1768The C<Z> specifier is notoriously unportable since the names of
1769timezones are non-standard. Sticking to the numeric specifiers is the
1770safest route.
1771
1772The given arguments are made consistent as though by calling
1773C<mktime()> before calling your system's C<strftime()> function,
1774except that the C<isdst> value is not affected.
cb1a09d0
AD
1775
1776The string for Tuesday, December 12, 1995.
1777
b70c169c
FC
1778 $str = POSIX::strftime( "%A, %B %d, %Y",
1779 0, 0, 0, 12, 11, 95, 2 );
cb1a09d0 1780 print "$str\n";
37120919 1781
41cd218c 1782=item C<strlen>
37120919 1783
4d0de388 1784Not implemented. C<strlen()> is C-specific, use C<length()> instead, see L<perlfunc/length>.
37120919 1785
41cd218c 1786=item C<strncat>
37120919 1787
4d0de388 1788Not implemented. C<strncat()> is C-specific, use C<.=> instead, see L<perlop>.
37120919 1789
41cd218c 1790=item C<strncmp>
37120919 1791
4d0de388 1792Not implemented. C<strncmp()> is C-specific, use C<eq> instead, see L<perlop>.
37120919 1793
41cd218c 1794=item C<strncpy>
37120919 1795
4d0de388 1796Not implemented. C<strncpy()> is C-specific, use C<=> instead, see L<perlop>.
37120919 1797
41cd218c 1798=item C<strpbrk>
37120919 1799
4d0de388 1800Not implemented. C<strpbrk()> is C-specific, use regular expressions instead,
4755096e 1801see L<perlre>.
37120919 1802
41cd218c 1803=item C<strrchr>
37120919 1804
4d0de388 1805Not implemented. C<strrchr()> is C-specific, see L<perlfunc/rindex> instead.
37120919 1806
41cd218c 1807=item C<strspn>
37120919 1808
4d0de388 1809Not implemented. C<strspn()> is C-specific, use regular expressions instead,
4755096e 1810see L<perlre>.
37120919 1811
41cd218c 1812=item C<strstr>
37120919 1813
4755096e
GS
1814This is identical to Perl's builtin C<index()> function,
1815see L<perlfunc/index>.
37120919 1816
41cd218c 1817=item C<strtod>
37120919 1818
a89d8a78
DH
1819String to double translation. Returns the parsed number and the number
1820of characters in the unparsed portion of the string. Truly
41cd218c 1821POSIX-compliant systems set C<$!> (C<$ERRNO>) to indicate a translation
4d0de388 1822error, so clear C<$!> before calling C<strtod>. However, non-POSIX systems
41cd218c 1823may not check for overflow, and therefore will never set C<$!>.
a89d8a78 1824
4e6effb7 1825C<strtod> respects any POSIX C<setlocale()> C<LC_NUMERIC> settings,
458680b3 1826regardless of whether or not it is called from Perl code that is within
aa2bc4d3
KW
1827the scope of S<C<use locale>>. This means it should not be used in a
1828threaded application unless it's certain that the underlying locale is C
1829or POSIX. This is because it otherwise changes the locale, which
1830globally affects all threads simultaneously.
a89d8a78 1831
41cd218c 1832To parse a string C<$str> as a floating point number use
a89d8a78
DH
1833
1834 $! = 0;
1835 ($num, $n_unparsed) = POSIX::strtod($str);
1836
41cd218c 1837The second returned item and C<$!> can be used to check for valid input:
a89d8a78 1838
6309100e
DM
1839 if (($str eq '') || ($n_unparsed != 0) || $!) {
1840 die "Non-numeric input $str" . ($! ? ": $!\n" : "\n");
a89d8a78
DH
1841 }
1842
4d0de388 1843When called in a scalar context C<strtod> returns the parsed number.
37120919 1844
41cd218c 1845=item C<strtok>
37120919 1846
4d0de388 1847Not implemented. C<strtok()> is C-specific, use regular expressions instead, see
4755096e 1848L<perlre>, or L<perlfunc/split>.
37120919 1849
41cd218c 1850=item C<strtol>
37120919 1851
a89d8a78
DH
1852String to (long) integer translation. Returns the parsed number and
1853the number of characters in the unparsed portion of the string. Truly
41cd218c
KW
1854POSIX-compliant systems set C<$!> (C<$ERRNO>) to indicate a translation
1855error, so clear C<$!> before calling C<strtol>. However, non-POSIX systems
1856may not check for overflow, and therefore will never set C<$!>.
a89d8a78 1857
41cd218c 1858C<strtol> should respect any POSIX I<setlocale()> settings.
a89d8a78 1859
41cd218c 1860To parse a string C<$str> as a number in some base C<$base> use
a89d8a78
DH
1861
1862 $! = 0;
1863 ($num, $n_unparsed) = POSIX::strtol($str, $base);
1864
1865The base should be zero or between 2 and 36, inclusive. When the base
4d0de388 1866is zero or omitted C<strtol> will use the string itself to determine the
a89d8a78
DH
1867base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1868octal; any other leading characters mean decimal. Thus, "1234" is
1869parsed as a decimal number, "01234" as an octal number, and "0x1234"
1870as a hexadecimal number.
1871
41cd218c 1872The second returned item and C<$!> can be used to check for valid input:
a89d8a78
DH
1873
1874 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1875 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1876 }
1877
4d0de388 1878When called in a scalar context C<strtol> returns the parsed number.
a89d8a78 1879
0ff7b9da
JH
1880=item C<strtold>
1881
1882Like L</strtod> but for long doubles. Defined only if the
1883system supports long doubles.
1884
41cd218c 1885=item C<strtoul>
a89d8a78 1886
41cd218c
KW
1887String to unsigned (long) integer translation. C<strtoul()> is identical
1888to C<strtol()> except that C<strtoul()> only parses unsigned integers. See
4755096e 1889L</strtol> for details.
a89d8a78 1890
41cd218c
KW
1891Note: Some vendors supply C<strtod()> and C<strtol()> but not C<strtoul()>.
1892Other vendors that do supply C<strtoul()> parse "-1" as a valid value.
37120919 1893
41cd218c 1894=item C<strxfrm>
37120919 1895
cb1a09d0
AD
1896String transformation. Returns the transformed string.
1897
1898 $dst = POSIX::strxfrm( $src );
37120919 1899
4755096e
GS
1900Used in conjunction with the C<strcoll()> function, see L</strcoll>.
1901
1902Not really needed since Perl can do this transparently, see
1903L<perllocale>.
1904
393aa92a
KW
1905Beware that in a UTF-8 locale, anything you pass to this function must
1906be in UTF-8; and when not in a UTF-8 locale, anything passed must not be
1907UTF-8 encoded.
1908
41cd218c 1909=item C<sysconf>
37120919
AD
1910
1911Retrieves values of system configurable variables.
1912
1913The following will get the machine's clock speed.
1914
1915 $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1916
1917Returns C<undef> on failure.
1918
41cd218c 1919=item C<system>
37120919 1920
4755096e
GS
1921This is identical to Perl's builtin C<system()> function, see
1922L<perlfunc/system>.
37120919 1923
41cd218c 1924=item C<tan>
37120919 1925
4755096e 1926This is identical to the C function C<tan()>, returning the
c2e66d9e 1927tangent of the numerical argument. See also L<Math::Trig>.
37120919 1928
41cd218c 1929=item C<tanh>
37120919 1930
4755096e 1931This is identical to the C function C<tanh()>, returning the
c2e66d9e 1932hyperbolic tangent of the numerical argument. See also L<Math::Trig>.
37120919 1933
41cd218c 1934=item C<tcdrain>
37120919 1935
4755096e
GS
1936This is similar to the C function C<tcdrain()> for draining
1937the output queue of its argument stream.
37120919
AD
1938
1939Returns C<undef> on failure.
1940
41cd218c 1941=item C<tcflow>
37120919 1942
4755096e
GS
1943This is similar to the C function C<tcflow()> for controlling
1944the flow of its argument stream.
37120919
AD
1945
1946Returns C<undef> on failure.
1947
41cd218c 1948=item C<tcflush>
37120919 1949
4755096e 1950This is similar to the C function C<tcflush()> for flushing
cc767757 1951the I/O buffers of its argument stream.
37120919
AD
1952
1953Returns C<undef> on failure.
1954
41cd218c 1955=item C<tcgetpgrp>
37120919 1956
4755096e
GS
1957This is identical to the C function C<tcgetpgrp()> for returning the
1958process group identifier of the foreground process group of the controlling
1959terminal.
37120919 1960
41cd218c 1961=item C<tcsendbreak>
37120919 1962
4755096e
GS
1963This is similar to the C function C<tcsendbreak()> for sending
1964a break on its argument stream.
37120919
AD
1965
1966Returns C<undef> on failure.
1967
41cd218c 1968=item C<tcsetpgrp>
37120919 1969
4755096e
GS
1970This is similar to the C function C<tcsetpgrp()> for setting the
1971process group identifier of the foreground process group of the controlling
1972terminal.
37120919
AD
1973
1974Returns C<undef> on failure.
1975
9d233e12
JH
1976=item C<tgamma>
1977
1978The Gamma function [C99].
1979
1980See also L</lgamma>.
1981
41cd218c 1982=item C<time>
37120919 1983
4755096e
GS
1984This is identical to Perl's builtin C<time()> function
1985for returning the number of seconds since the epoch
1986(whatever it is for the system), see L<perlfunc/time>.
37120919 1987
41cd218c 1988=item C<times>
37120919 1989
41cd218c 1990The C<times()> function returns elapsed realtime since some point in the past
37120919
AD
1991(such as system startup), user and system times for this process, and user
1992and system times used by child processes. All times are returned in clock
1993ticks.
1994
4d0de388 1995 ($realtime, $user, $system, $cuser, $csystem)
b70c169c 1996 = POSIX::times();
37120919
AD
1997
1998Note: Perl's builtin C<times()> function returns four values, measured in
1999seconds.
2000
41cd218c 2001=item C<tmpfile>
37120919 2002
4d0de388 2003Not implemented. Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
37120919 2004
41cd218c 2005=item C<tmpnam>
37120919 2006
60cba15a 2007For security reasons, which are probably detailed in your system's
41cd218c 2008documentation for the C library C<tmpnam()> function, this interface
26acb4d0 2009is no longer available; instead use L<File::Temp>.
4755096e 2010
41cd218c 2011=item C<tolower>
37120919 2012
4755096e 2013This is identical to the C function, except that it can apply to a single
4d0de388
KW
2014character or to a whole string, and currently operates as if the locale
2015always is "C". Consider using the C<lc()> function, see L<perlfunc/lc>,
4755096e
GS
2016see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
2017strings.
37120919 2018
41cd218c 2019=item C<toupper>
37120919 2020
4d0de388
KW
2021This is similar to the C function, except that it can apply to a single
2022character or to a whole string, and currently operates as if the locale
2023always is "C". Consider using the C<uc()> function, see L<perlfunc/uc>,
2024or the equivalent C<\U> operator inside doublequotish strings.
37120919 2025
9d233e12
JH
2026=item C<trunc>
2027
2028Returns the integer toward zero from the argument [C99].
2029
2030See also L</ceil>, L</floor>, and L</round>.
2031
41cd218c 2032=item C<ttyname>
37120919 2033
4755096e
GS
2034This is identical to the C function C<ttyname()> for returning the
2035name of the current terminal.
37120919 2036
41cd218c 2037=item C<tzname>
37120919 2038
cb1a09d0
AD
2039Retrieves the time conversion information from the C<tzname> variable.
2040
2041 POSIX::tzset();
2042 ($std, $dst) = POSIX::tzname();
37120919 2043
41cd218c 2044=item C<tzset>
37120919 2045
4755096e
GS
2046This is identical to the C function C<tzset()> for setting
2047the current timezone based on the environment variable C<TZ>,
2048to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
2049functions.
37120919 2050
41cd218c 2051=item C<umask>
37120919 2052
4755096e
GS
2053This is identical to Perl's builtin C<umask()> function
2054for setting (and querying) the file creation permission mask,
2055see L<perlfunc/umask>.
37120919 2056
41cd218c 2057=item C<uname>
37120919 2058
cb1a09d0
AD
2059Get name of current operating system.
2060
b70c169c
FC
2061 ($sysname, $nodename, $release, $version, $machine)
2062 = POSIX::uname();
4755096e
GS
2063
2064Note that the actual meanings of the various fields are not
2065that well standardized, do not expect any great portability.
2066The C<$sysname> might be the name of the operating system,
2067the C<$nodename> might be the name of the host, the C<$release>
2068might be the (major) release number of the operating system,
2069the C<$version> might be the (minor) release number of the
2070operating system, and the C<$machine> might be a hardware identifier.
2071Maybe.
37120919 2072
41cd218c 2073=item C<ungetc>
37120919 2074
4d0de388 2075Not implemented. Use method C<IO::Handle::ungetc()> instead.
37120919 2076
41cd218c 2077=item C<unlink>
37120919 2078
4755096e
GS
2079This is identical to Perl's builtin C<unlink()> function
2080for removing files, see L<perlfunc/unlink>.
37120919 2081
41cd218c 2082=item C<utime>
37120919 2083
4755096e
GS
2084This is identical to Perl's builtin C<utime()> function
2085for changing the time stamps of files and directories,
2086see L<perlfunc/utime>.
37120919 2087
41cd218c 2088=item C<vfprintf>
37120919 2089
4d0de388 2090Not implemented. C<vfprintf()> is C-specific, see L<perlfunc/printf> instead.
37120919 2091
41cd218c 2092=item C<vprintf>
37120919 2093
4d0de388 2094Not implemented. C<vprintf()> is C-specific, see L<perlfunc/printf> instead.
37120919 2095
41cd218c 2096=item C<vsprintf>
37120919 2097
4d0de388 2098Not implemented. C<vsprintf()> is C-specific, see L<perlfunc/sprintf> instead.
37120919 2099
41cd218c 2100=item C<wait>
37120919 2101
4755096e
GS
2102This is identical to Perl's builtin C<wait()> function,
2103see L<perlfunc/wait>.
37120919 2104
41cd218c 2105=item C<waitpid>
37120919 2106
cb1a09d0 2107Wait for a child process to change state. This is identical to Perl's
4755096e 2108builtin C<waitpid()> function, see L<perlfunc/waitpid>.
cb1a09d0 2109
2ac1ef3d 2110 $pid = POSIX::waitpid( -1, POSIX::WNOHANG );
cb1a09d0 2111 print "status = ", ($? / 256), "\n";
37120919 2112
41cd218c 2113=item C<wcstombs>
37120919 2114
cb1a09d0 2115This is identical to the C function C<wcstombs()>.
351ab2ad
JH
2116
2117See L</mblen>.
37120919 2118
41cd218c 2119=item C<wctomb>
37120919 2120
cb1a09d0 2121This is identical to the C function C<wctomb()>.
351ab2ad
JH
2122
2123See L</mblen>.
37120919 2124
41cd218c 2125=item C<write>
37120919 2126
cb1a09d0
AD
2127Write to a file. This uses file descriptors such as those obtained by
2128calling C<POSIX::open>.
2129
2130 $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
2131 $buf = "hello";
a0604b4c 2132 $bytes = POSIX::write( $fd, $buf, 5 );
37120919
AD
2133
2134Returns C<undef> on failure.
2135
4755096e
GS
2136See also L<perlfunc/syswrite>.
2137
37120919
AD
2138=back
2139
2140=head1 CLASSES
2141
41cd218c 2142=head2 C<POSIX::SigAction>
37120919
AD
2143
2144=over 8
2145
41cd218c 2146=item C<new>
37120919 2147
cb1a09d0 2148Creates a new C<POSIX::SigAction> object which corresponds to the C
3609ea0d
JH
2149C<struct sigaction>. This object will be destroyed automatically when
2150it is no longer needed. The first parameter is the handler, a sub
2151reference. The second parameter is a C<POSIX::SigSet> object, it
2152defaults to the empty set. The third parameter contains the
28757baa 2153C<sa_flags>, it defaults to 0.
cb1a09d0 2154
28757baa 2155 $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
b70c169c
FC
2156 $sigaction = POSIX::SigAction->new(
2157 \&handler, $sigset, &POSIX::SA_NOCLDSTOP
2158 );
cb1a09d0 2159
d36b6582 2160This C<POSIX::SigAction> object is intended for use with the C<POSIX::sigaction()>
cb1a09d0 2161function.
37120919
AD
2162
2163=back
2164
557c0de7
BD
2165=over 8
2166
41cd218c 2167=item C<handler>
557c0de7 2168
41cd218c 2169=item C<mask>
557c0de7 2170
41cd218c 2171=item C<flags>
557c0de7
BD
2172
2173accessor functions to get/set the values of a SigAction object.
2174
2175 $sigset = $sigaction->mask;
2176 $sigaction->flags(&POSIX::SA_RESTART);
2177
41cd218c 2178=item C<safe>
d36b6582
CS
2179
2180accessor function for the "safe signals" flag of a SigAction object; see
2181L<perlipc> for general information on safe (a.k.a. "deferred") signals. If
2182you wish to handle a signal safely, use this accessor to set the "safe" flag
2183in the C<POSIX::SigAction> object:
2184
2185 $sigaction->safe(1);
2186
2187You may also examine the "safe" flag on the output action object which is
2188filled in when given as the third parameter to C<POSIX::sigaction()>:
2189
2190 sigaction(SIGINT, $new_action, $old_action);
2191 if ($old_action->safe) {
2192 # previous SIGINT handler used safe signals
2193 }
2194
557c0de7
BD
2195=back
2196
41cd218c 2197=head2 C<POSIX::SigRt>
3609ea0d
JH
2198
2199=over 8
2200
41cd218c 2201=item C<%SIGRT>
3609ea0d
JH
2202
2203A hash of the POSIX realtime signal handlers. It is an extension of
41cd218c
KW
2204the standard C<%SIG>, the C<$POSIX::SIGRT{SIGRTMIN}> is roughly equivalent
2205to C<$SIG{SIGRTMIN}>, but the right POSIX moves (see below) are made with
2206the C<POSIX::SigSet> and C<POSIX::sigaction> instead of accessing the C<%SIG>.
3609ea0d 2207
41cd218c 2208You can set the C<%POSIX::SIGRT> elements to set the POSIX realtime
3609ea0d
JH
2209signal handlers, use C<delete> and C<exists> on the elements, and use
2210C<scalar> on the C<%POSIX::SIGRT> to find out how many POSIX realtime
41cd218c 2211signals there are available S<C<(SIGRTMAX - SIGRTMIN + 1>>, the C<SIGRTMAX> is
3609ea0d
JH
2212a valid POSIX realtime signal).
2213
41cd218c 2214Setting the C<%SIGRT> elements is equivalent to calling this:
3609ea0d
JH
2215
2216 sub new {
2217 my ($rtsig, $handler, $flags) = @_;
b8921b3e 2218 my $sigset = POSIX::SigSet($rtsig);
b70c169c 2219 my $sigact = POSIX::SigAction->new($handler,$sigset,$flags);
3609ea0d
JH
2220 sigaction($rtsig, $sigact);
2221 }
2222
2223The flags default to zero, if you want something different you can
41cd218c 2224either use C<local> on C<$POSIX::SigRt::SIGACTION_FLAGS>, or you can
3609ea0d 2225derive from POSIX::SigRt and define your own C<new()> (the tied hash
41cd218c
KW
2226STORE method of the C<%SIGRT> calls C<new($rtsig, $handler, $SIGACTION_FLAGS)>,
2227where the C<$rtsig> ranges from zero to S<C<SIGRTMAX - SIGRTMIN + 1)>>.
3609ea0d 2228
41cd218c 2229Just as with any signal, you can use C<sigaction($rtsig, undef, $oa)> to
3609ea0d
JH
2230retrieve the installed signal handler (or, rather, the signal action).
2231
2232B<NOTE:> whether POSIX realtime signals really work in your system, or
2233whether Perl has been compiled so that it works with them, is outside
2234of this discussion.
2235
41cd218c 2236=item C<SIGRTMIN>
3609ea0d
JH
2237
2238Return the minimum POSIX realtime signal number available, or C<undef>
2239if no POSIX realtime signals are available.
2240
41cd218c 2241=item C<SIGRTMAX>
3609ea0d
JH
2242
2243Return the maximum POSIX realtime signal number available, or C<undef>
2244if no POSIX realtime signals are available.
2245
2246=back
2247
41cd218c 2248=head2 C<POSIX::SigSet>
37120919
AD
2249
2250=over 8
2251
41cd218c 2252=item C<new>
37120919
AD
2253
2254Create a new SigSet object. This object will be destroyed automatically
2255when it is no longer needed. Arguments may be supplied to initialize the
2256set.
2257
2258Create an empty set.
2259
2260 $sigset = POSIX::SigSet->new;
2261
41cd218c 2262Create a set with C<SIGUSR1>.
37120919
AD
2263
2264 $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
2265
41cd218c 2266=item C<addset>
37120919
AD
2267
2268Add a signal to a SigSet object.
2269
2270 $sigset->addset( &POSIX::SIGUSR2 );
2271
2272Returns C<undef> on failure.
2273
41cd218c 2274=item C<delset>
37120919
AD
2275
2276Remove a signal from the SigSet object.
2277
2278 $sigset->delset( &POSIX::SIGUSR2 );
2279
2280Returns C<undef> on failure.
2281
41cd218c 2282=item C<emptyset>
37120919
AD
2283
2284Initialize the SigSet object to be empty.
2285
2286 $sigset->emptyset();
2287
2288Returns C<undef> on failure.
2289
41cd218c 2290=item C<fillset>
37120919
AD
2291
2292Initialize the SigSet object to include all signals.
2293
2294 $sigset->fillset();
2295
2296Returns C<undef> on failure.
2297
41cd218c 2298=item C<ismember>
37120919
AD
2299
2300Tests the SigSet object to see if it contains a specific signal.
2301
2302 if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
2303 print "contains SIGUSR1\n";
2304 }
2305
2306=back
2307
41cd218c 2308=head2 C<POSIX::Termios>
37120919
AD
2309
2310=over 8
2311
41cd218c 2312=item C<new>
37120919
AD
2313
2314Create a new Termios object. This object will be destroyed automatically
4d0de388 2315when it is no longer needed. A Termios object corresponds to the C<termios>
41cd218c
KW
2316C struct. C<new()> mallocs a new one, C<getattr()> fills it from a file descriptor,
2317and C<setattr()> sets a file descriptor's parameters to match Termios' contents.
37120919
AD
2318
2319 $termios = POSIX::Termios->new;
2320
41cd218c 2321=item C<getattr>
37120919 2322
cb1a09d0
AD
2323Get terminal control attributes.
2324
4d0de388 2325Obtain the attributes for C<stdin>.
cb1a09d0 2326
220f811a 2327 $termios->getattr( 0 ) # Recommended for clarity.
cb1a09d0
AD
2328 $termios->getattr()
2329
2330Obtain the attributes for stdout.
2331
2332 $termios->getattr( 1 )
37120919
AD
2333
2334Returns C<undef> on failure.
2335
41cd218c 2336=item C<getcc>
37120919 2337
4d0de388 2338Retrieve a value from the C<c_cc> field of a C<termios> object. The C<c_cc> field is
37120919
AD
2339an array so an index must be specified.
2340
2341 $c_cc[1] = $termios->getcc(1);
2342
41cd218c 2343=item C<getcflag>
37120919 2344
4d0de388 2345Retrieve the C<c_cflag> field of a C<termios> object.
37120919
AD
2346
2347 $c_cflag = $termios->getcflag;
2348
41cd218c 2349=item C<getiflag>
37120919 2350
4d0de388 2351Retrieve the C<c_iflag> field of a C<termios> object.
37120919
AD
2352
2353 $c_iflag = $termios->getiflag;
2354
41cd218c 2355=item C<getispeed>
37120919
AD
2356
2357Retrieve the input baud rate.
2358
2359 $ispeed = $termios->getispeed;
2360
41cd218c 2361=item C<getlflag>
37120919 2362
4d0de388 2363Retrieve the C<c_lflag> field of a C<termios> object.
37120919
AD
2364
2365 $c_lflag = $termios->getlflag;
2366
41cd218c 2367=item C<getoflag>
37120919 2368
4d0de388 2369Retrieve the C<c_oflag> field of a C<termios> object.
37120919
AD
2370
2371 $c_oflag = $termios->getoflag;
2372
41cd218c 2373=item C<getospeed>
37120919
AD
2374
2375Retrieve the output baud rate.
2376
2377 $ospeed = $termios->getospeed;
2378
41cd218c 2379=item C<setattr>
37120919 2380
cb1a09d0
AD
2381Set terminal control attributes.
2382
2383Set attributes immediately for stdout.
2384
2385 $termios->setattr( 1, &POSIX::TCSANOW );
37120919
AD
2386
2387Returns C<undef> on failure.
2388
41cd218c 2389=item C<setcc>
37120919 2390
4d0de388 2391Set a value in the C<c_cc> field of a C<termios> object. The C<c_cc> field is an
37120919
AD
2392array so an index must be specified.
2393
6b7a6f50 2394 $termios->setcc( &POSIX::VEOF, 1 );
37120919 2395
41cd218c 2396=item C<setcflag>
37120919 2397
4d0de388 2398Set the C<c_cflag> field of a C<termios> object.
37120919 2399
55d729e4 2400 $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
37120919 2401
41cd218c 2402=item C<setiflag>
37120919 2403
4d0de388 2404Set the C<c_iflag> field of a C<termios> object.
37120919 2405
55d729e4 2406 $termios->setiflag( $c_iflag | &POSIX::BRKINT );
37120919 2407
41cd218c 2408=item C<setispeed>
37120919
AD
2409
2410Set the input baud rate.
2411
2412 $termios->setispeed( &POSIX::B9600 );
2413
2414Returns C<undef> on failure.
2415
41cd218c 2416=item C<setlflag>
37120919 2417
4d0de388 2418Set the C<c_lflag> field of a C<termios> object.
37120919 2419
55d729e4 2420 $termios->setlflag( $c_lflag | &POSIX::ECHO );
37120919 2421
41cd218c 2422=item C<setoflag>
37120919 2423
4d0de388 2424Set the C<c_oflag> field of a C<termios> object.
37120919 2425
55d729e4 2426 $termios->setoflag( $c_oflag | &POSIX::OPOST );
37120919 2427
41cd218c 2428=item C<setospeed>
37120919
AD
2429
2430Set the output baud rate.
2431
2432 $termios->setospeed( &POSIX::B9600 );
2433
2434Returns C<undef> on failure.
2435
2436=item Baud rate values
2437
41cd218c 2438C<B38400> C<B75> C<B200> C<B134> C<B300> C<B1800> C<B150> C<B0> C<B19200> C<B1200> C<B9600> C<B600> C<B4800> C<B50> C<B2400> C<B110>
37120919
AD
2439
2440=item Terminal interface values
2441
41cd218c 2442C<TCSADRAIN> C<TCSANOW> C<TCOON> C<TCIOFLUSH> C<TCOFLUSH> C<TCION> C<TCIFLUSH> C<TCSAFLUSH> C<TCIOFF> C<TCOOFF>
37120919 2443
41cd218c 2444=item C<c_cc> field values
37120919 2445
41cd218c 2446C<VEOF> C<VEOL> C<VERASE> C<VINTR> C<VKILL> C<VQUIT> C<VSUSP> C<VSTART> C<VSTOP> C<VMIN> C<VTIME> C<NCCS>
37120919 2447
41cd218c 2448=item C<c_cflag> field values
37120919 2449
41cd218c 2450C<CLOCAL> C<CREAD> C<CSIZE> C<CS5> C<CS6> C<CS7> C<CS8> C<CSTOPB> C<HUPCL> C<PARENB> C<PARODD>
37120919 2451
41cd218c 2452=item C<c_iflag> field values
37120919 2453
41cd218c 2454C<BRKINT> C<ICRNL> C<IGNBRK> C<IGNCR> C<IGNPAR> C<INLCR> C<INPCK> C<ISTRIP> C<IXOFF> C<IXON> C<PARMRK>
37120919 2455
41cd218c 2456=item C<c_lflag> field values
37120919 2457
41cd218c 2458C<ECHO> C<ECHOE> C<ECHOK> C<ECHONL> C<ICANON> C<IEXTEN> C<ISIG> C<NOFLSH> C<TOSTOP>
37120919 2459
41cd218c 2460=item C<c_oflag> field values
37120919 2461
41cd218c 2462C<OPOST>
37120919
AD
2463
2464=back
2465
2466=head1 PATHNAME CONSTANTS
2467
2468=over 8
2469
2470=item Constants
2471
41cd218c
KW
2472C<_PC_CHOWN_RESTRICTED> C<_PC_LINK_MAX> C<_PC_MAX_CANON> C<_PC_MAX_INPUT> C<_PC_NAME_MAX>
2473C<_PC_NO_TRUNC> C<_PC_PATH_MAX> C<_PC_PIPE_BUF> C<_PC_VDISABLE>
37120919
AD
2474
2475=back
2476
2477=head1 POSIX CONSTANTS
2478
2479=over 8
2480
2481=item Constants
2482
41cd218c
KW
2483C<_POSIX_ARG_MAX> C<_POSIX_CHILD_MAX> C<_POSIX_CHOWN_RESTRICTED> C<_POSIX_JOB_CONTROL>
2484C<_POSIX_LINK_MAX> C<_POSIX_MAX_CANON> C<_POSIX_MAX_INPUT> C<_POSIX_NAME_MAX>
2485C<_POSIX_NGROUPS_MAX> C<_POSIX_NO_TRUNC> C<_POSIX_OPEN_MAX> C<_POSIX_PATH_MAX>
2486C<_POSIX_PIPE_BUF> C<_POSIX_SAVED_IDS> C<_POSIX_SSIZE_MAX> C<_POSIX_STREAM_MAX>
2487C<_POSIX_TZNAME_MAX> C<_POSIX_VDISABLE> C<_POSIX_VERSION>
37120919
AD
2488
2489=back
2490
4fd667a8
TC
2491=head1 RESOURCE CONSTANTS
2492
2493Imported with the C<:sys_resource_h> tag.
2494
2495=over 8
2496
2497=item Constants
2498
2499C<PRIO_PROCESS> C<PRIO_PGRP> C<PRIO_USER>
2500
2501=back
2502
37120919
AD
2503=head1 SYSTEM CONFIGURATION
2504
2505=over 8
2506
2507=item Constants
2508
41cd218c
KW
2509C<_SC_ARG_MAX> C<_SC_CHILD_MAX> C<_SC_CLK_TCK> C<_SC_JOB_CONTROL> C<_SC_NGROUPS_MAX>
2510C<_SC_OPEN_MAX> C<_SC_PAGESIZE> C<_SC_SAVED_IDS> C<_SC_STREAM_MAX> C<_SC_TZNAME_MAX>
2511C<_SC_VERSION>
37120919
AD
2512
2513=back
2514
2515=head1 ERRNO
2516
2517=over 8
2518
2519=item Constants
2520
41cd218c
KW
2521C<E2BIG> C<EACCES> C<EADDRINUSE> C<EADDRNOTAVAIL> C<EAFNOSUPPORT> C<EAGAIN> C<EALREADY> C<EBADF> C<EBADMSG>
2522C<EBUSY> C<ECANCELED> C<ECHILD> C<ECONNABORTED> C<ECONNREFUSED> C<ECONNRESET> C<EDEADLK> C<EDESTADDRREQ>
2523C<EDOM> C<EDQUOT> C<EEXIST> C<EFAULT> C<EFBIG> C<EHOSTDOWN> C<EHOSTUNREACH> C<EIDRM> C<EILSEQ> C<EINPROGRESS>
2524C<EINTR> C<EINVAL> C<EIO> C<EISCONN> C<EISDIR> C<ELOOP> C<EMFILE> C<EMLINK> C<EMSGSIZE> C<ENAMETOOLONG>
2525C<ENETDOWN> C<ENETRESET> C<ENETUNREACH> C<ENFILE> C<ENOBUFS> C<ENODATA> C<ENODEV> C<ENOENT> C<ENOEXEC>
2526C<ENOLCK> C<ENOLINK> C<ENOMEM> C<ENOMSG> C<ENOPROTOOPT> C<ENOSPC> C<ENOSR> C<ENOSTR> C<ENOSYS> C<ENOTBLK>
2527C<ENOTCONN> C<ENOTDIR> C<ENOTEMPTY> C<ENOTRECOVERABLE> C<ENOTSOCK> C<ENOTSUP> C<ENOTTY> C<ENXIO>
2528C<EOPNOTSUPP> C<EOTHER> C<EOVERFLOW> C<EOWNERDEAD> C<EPERM> C<EPFNOSUPPORT> C<EPIPE> C<EPROCLIM> C<EPROTO>
2529C<EPROTONOSUPPORT> C<EPROTOTYPE> C<ERANGE> C<EREMOTE> C<ERESTART> C<EROFS> C<ESHUTDOWN>
2530C<ESOCKTNOSUPPORT> C<ESPIPE> C<ESRCH> C<ESTALE> C<ETIME> C<ETIMEDOUT> C<ETOOMANYREFS> C<ETXTBSY> C<EUSERS>
2531C<EWOULDBLOCK> C<EXDEV>
37120919
AD
2532
2533=back
2534
2535=head1 FCNTL
2536
2537=over 8
2538
2539=item Constants
2540
41cd218c
KW
2541C<FD_CLOEXEC> C<F_DUPFD> C<F_GETFD> C<F_GETFL> C<F_GETLK> C<F_OK> C<F_RDLCK> C<F_SETFD> C<F_SETFL> C<F_SETLK>
2542C<F_SETLKW> C<F_UNLCK> C<F_WRLCK> C<O_ACCMODE> C<O_APPEND> C<O_CREAT> C<O_EXCL> C<O_NOCTTY> C<O_NONBLOCK>
2543C<O_RDONLY> C<O_RDWR> C<O_TRUNC> C<O_WRONLY>
37120919
AD
2544
2545=back
2546
2547=head1 FLOAT
2548
2549=over 8
2550
2551=item Constants
2552
41cd218c
KW
2553C<DBL_DIG> C<DBL_EPSILON> C<DBL_MANT_DIG> C<DBL_MAX> C<DBL_MAX_10_EXP> C<DBL_MAX_EXP> C<DBL_MIN>
2554C<DBL_MIN_10_EXP> C<DBL_MIN_EXP> C<FLT_DIG> C<FLT_EPSILON> C<FLT_MANT_DIG> C<FLT_MAX>
2555C<FLT_MAX_10_EXP> C<FLT_MAX_EXP> C<FLT_MIN> C<FLT_MIN_10_EXP> C<FLT_MIN_EXP> C<FLT_RADIX>
2556C<FLT_ROUNDS> C<LDBL_DIG> C<LDBL_EPSILON> C<LDBL_MANT_DIG> C<LDBL_MAX> C<LDBL_MAX_10_EXP>
2557C<LDBL_MAX_EXP> C<LDBL_MIN> C<LDBL_MIN_10_EXP> C<LDBL_MIN_EXP>
37120919
AD
2558
2559=back
2560
98ab3abf
AP
2561=head1 FLOATING-POINT ENVIRONMENT
2562
2563=over 8
2564
2565=item Constants
2566
2567C<FE_DOWNWARD> C<FE_TONEAREST> C<FE_TOWARDZERO> C<FE_UPWARD>
2568on systems that support them.
2569
2570=back
2571
37120919
AD
2572=head1 LIMITS
2573
2574=over 8
2575
2576=item Constants
2577
41cd218c
KW
2578C<ARG_MAX> C<CHAR_BIT> C<CHAR_MAX> C<CHAR_MIN> C<CHILD_MAX> C<INT_MAX> C<INT_MIN> C<LINK_MAX> C<LONG_MAX>
2579C<LONG_MIN> C<MAX_CANON> C<MAX_INPUT> C<MB_LEN_MAX> C<NAME_MAX> C<NGROUPS_MAX> C<OPEN_MAX> C<PATH_MAX>
2580C<PIPE_BUF> C<SCHAR_MAX> C<SCHAR_MIN> C<SHRT_MAX> C<SHRT_MIN> C<SSIZE_MAX> C<STREAM_MAX> C<TZNAME_MAX>
2581C<UCHAR_MAX> C<UINT_MAX> C<ULONG_MAX> C<USHRT_MAX>
37120919
AD
2582
2583=back
2584
2585=head1 LOCALE
2586
2587=over 8
2588
2589=item Constants
2590
4d0de388
KW
2591C<LC_ALL> C<LC_COLLATE> C<LC_CTYPE> C<LC_MONETARY> C<LC_NUMERIC> C<LC_TIME> C<LC_MESSAGES>
2592on systems that support them.
37120919
AD
2593
2594=back
2595
2596=head1 MATH
2597
2598=over 8
2599
2600=item Constants
2601
41cd218c 2602C<HUGE_VAL>
37120919 2603
98ab3abf
AP
2604C<FP_ILOGB0> C<FP_ILOGBNAN> C<FP_INFINITE> C<FP_NAN> C<FP_NORMAL> C<FP_SUBNORMAL> C<FP_ZERO>
2605C<INFINITY> C<NAN> C<Inf> C<NaN>
2606C<M_1_PI> C<M_2_PI> C<M_2_SQRTPI> C<M_E> C<M_LN10> C<M_LN2> C<M_LOG10E> C<M_LOG2E> C<M_PI>
2607C<M_PI_2> C<M_PI_4> C<M_SQRT1_2> C<M_SQRT2>
2608on systems with C99 support.
2609
37120919
AD
2610=back
2611
2612=head1 SIGNAL
2613
2614=over 8
2615
2616=item Constants
2617
41cd218c
KW
2618C<SA_NOCLDSTOP> C<SA_NOCLDWAIT> C<SA_NODEFER> C<SA_ONSTACK> C<SA_RESETHAND> C<SA_RESTART>
2619C<SA_SIGINFO> C<SIGABRT> C<SIGALRM> C<SIGCHLD> C<SIGCONT> C<SIGFPE> C<SIGHUP> C<SIGILL> C<SIGINT>
2620C<SIGKILL> C<SIGPIPE> C<SIGQUIT> C<SIGSEGV> C<SIGSTOP> C<SIGTERM> C<SIGTSTP> C<SIGTTIN> C<SIGTTOU>
2621C<SIGUSR1> C<SIGUSR2> C<SIG_BLOCK> C<SIG_DFL> C<SIG_ERR> C<SIG_IGN> C<SIG_SETMASK>
2622C<SIG_UNBLOCK>
34e79b75
DIM
2623C<ILL_ILLOPC> C<ILL_ILLOPN> C<ILL_ILLADR> C<ILL_ILLTRP> C<ILL_PRVOPC> C<ILL_PRVREG> C<ILL_COPROC>
2624C<ILL_BADSTK> C<FPE_INTDIV> C<FPE_INTOVF> C<FPE_FLTDIV> C<FPE_FLTOVF> C<FPE_FLTUND> C<FPE_FLTRES>
2625C<FPE_FLTINV> C<FPE_FLTSUB> C<SEGV_MAPERR> C<SEGV_ACCERR> C<BUS_ADRALN> C<BUS_ADRERR>
2626C<BUS_OBJERR> C<TRAP_BRKPT> C<TRAP_TRACE> C<CLD_EXITED> C<CLD_KILLED> C<CLD_DUMPED> C<CLD_TRAPPED>
2627C<CLD_STOPPED> C<CLD_CONTINUED> C<POLL_IN> C<POLL_OUT> C<POLL_MSG> C<POLL_ERR> C<POLL_PRI>
2628C<POLL_HUP> C<SI_USER> C<SI_QUEUE> C<SI_TIMER> C<SI_ASYNCIO> C<SI_MESGQ>
37120919
AD
2629
2630=back
2631
2632=head1 STAT
2633
2634=over 8
2635
2636=item Constants
2637
41cd218c
KW
2638C<S_IRGRP> C<S_IROTH> C<S_IRUSR> C<S_IRWXG> C<S_IRWXO> C<S_IRWXU> C<S_ISGID> C<S_ISUID> C<S_IWGRP> C<S_IWOTH>
2639C<S_IWUSR> C<S_IXGRP> C<S_IXOTH> C<S_IXUSR>
37120919
AD
2640
2641=item Macros
2642
41cd218c 2643C<S_ISBLK> C<S_ISCHR> C<S_ISDIR> C<S_ISFIFO> C<S_ISREG>
37120919
AD
2644
2645=back
2646
2647=head1 STDLIB
2648
2649=over 8
2650
2651=item Constants
2652
41cd218c 2653C<EXIT_FAILURE> C<EXIT_SUCCESS> C<MB_CUR_MAX> C<RAND_MAX>
37120919
AD
2654
2655=back
2656
2657=head1 STDIO
2658
2659=over 8
2660
2661=item Constants
2662
1cb852db 2663C<BUFSIZ> C<EOF> C<FILENAME_MAX> C<L_ctermid> C<L_cuserid> C<TMP_MAX>
37120919
AD
2664
2665=back
2666
2667=head1 TIME
2668
2669=over 8
2670
2671=item Constants
2672
41cd218c 2673C<CLK_TCK> C<CLOCKS_PER_SEC>
37120919
AD
2674
2675=back
2676
2677=head1 UNISTD
2678
2679=over 8
2680
2681=item Constants
2682
41cd218c 2683C<R_OK> C<SEEK_CUR> C<SEEK_END> C<SEEK_SET> C<STDIN_FILENO> C<STDOUT_FILENO> C<STDERR_FILENO> C<W_OK> C<X_OK>
37120919
AD
2684
2685=back
2686
2687=head1 WAIT
2688
2689=over 8
2690
2691=item Constants
2692
41cd218c 2693C<WNOHANG> C<WUNTRACED>
37120919 2694
9d6eb86e
JH
2695=over 16
2696
41cd218c 2697=item C<WNOHANG>
9d6eb86e
JH
2698
2699Do not suspend the calling process until a child process
2700changes state but instead return immediately.
2701
41cd218c 2702=item C<WUNTRACED>
9d6eb86e
JH
2703
2704Catch stopped child processes.
2705
2706=back
2707
37120919
AD
2708=item Macros
2709
41cd218c 2710C<WIFEXITED> C<WEXITSTATUS> C<WIFSIGNALED> C<WTERMSIG> C<WIFSTOPPED> C<WSTOPSIG>
37120919 2711
9d6eb86e
JH
2712=over 16
2713
41cd218c 2714=item C<WIFEXITED>
9d6eb86e 2715
41cd218c 2716C<WIFEXITED(${^CHILD_ERROR_NATIVE})> returns true if the child process
12a72a5a 2717exited normally (C<exit()> or by falling off the end of C<main()>)
9d6eb86e 2718
41cd218c 2719=item C<WEXITSTATUS>
9d6eb86e 2720
41cd218c
KW
2721C<WEXITSTATUS(${^CHILD_ERROR_NATIVE})> returns the normal exit status of
2722the child process (only meaningful if C<WIFEXITED(${^CHILD_ERROR_NATIVE})>
12a72a5a 2723is true)
9d6eb86e 2724
41cd218c 2725=item C<WIFSIGNALED>
9d6eb86e 2726
41cd218c 2727C<WIFSIGNALED(${^CHILD_ERROR_NATIVE})> returns true if the child process
12a72a5a 2728terminated because of a signal
9d6eb86e 2729
41cd218c 2730=item C<WTERMSIG>
9d6eb86e 2731
41cd218c
KW
2732C<WTERMSIG(${^CHILD_ERROR_NATIVE})> returns the signal the child process
2733terminated for (only meaningful if
2734C<WIFSIGNALED(${^CHILD_ERROR_NATIVE})>
12a72a5a 2735is true)
9d6eb86e 2736
41cd218c 2737=item C<WIFSTOPPED>
9d6eb86e 2738
41cd218c 2739C<WIFSTOPPED(${^CHILD_ERROR_NATIVE})> returns true if the child process is
12a72a5a 2740currently stopped (can happen only if you specified the WUNTRACED flag
41cd218c 2741to C<waitpid()>)
9d6eb86e 2742
41cd218c 2743=item C<WSTOPSIG>
9d6eb86e 2744
41cd218c
KW
2745C<WSTOPSIG(${^CHILD_ERROR_NATIVE})> returns the signal the child process
2746was stopped for (only meaningful if
2747C<WIFSTOPPED(${^CHILD_ERROR_NATIVE})>
12a72a5a 2748is true)
9d6eb86e
JH
2749
2750=back
2751
37120919
AD
2752=back
2753
a28fff51
SH
2754=head1 WINSOCK
2755
2756(Windows only.)
2757
2758=over 8
2759
2760=item Constants
2761
2762C<WSAEINTR> C<WSAEBADF> C<WSAEACCES> C<WSAEFAULT> C<WSAEINVAL> C<WSAEMFILE> C<WSAEWOULDBLOCK>
2763C<WSAEINPROGRESS> C<WSAEALREADY> C<WSAENOTSOCK> C<WSAEDESTADDRREQ> C<WSAEMSGSIZE>
2764C<WSAEPROTOTYPE> C<WSAENOPROTOOPT> C<WSAEPROTONOSUPPORT> C<WSAESOCKTNOSUPPORT>
2765C<WSAEOPNOTSUPP> C<WSAEPFNOSUPPORT> C<WSAEAFNOSUPPORT> C<WSAEADDRINUSE>
2766C<WSAEADDRNOTAVAIL> C<WSAENETDOWN> C<WSAENETUNREACH> C<WSAENETRESET> C<WSAECONNABORTED>
2767C<WSAECONNRESET> C<WSAENOBUFS> C<WSAEISCONN> C<WSAENOTCONN> C<WSAESHUTDOWN>
2768C<WSAETOOMANYREFS> C<WSAETIMEDOUT> C<WSAECONNREFUSED> C<WSAELOOP> C<WSAENAMETOOLONG>
2769C<WSAEHOSTDOWN> C<WSAEHOSTUNREACH> C<WSAENOTEMPTY> C<WSAEPROCLIM> C<WSAEUSERS>
2770C<WSAEDQUOT> C<WSAESTALE> C<WSAEREMOTE> C<WSAEDISCON> C<WSAENOMORE> C<WSAECANCELLED>
2771C<WSAEINVALIDPROCTABLE> C<WSAEINVALIDPROVIDER> C<WSAEPROVIDERFAILEDINIT>
2772C<WSAEREFUSED>
2773
2774=back
2775