3 POSIX - Perl interface to IEEE Std 1003.1
9 use POSIX qw(:errno_h :fcntl_h);
11 printf "EINTR is %d\n", EINTR;
13 $sess_id = POSIX::setsid();
15 $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
16 # note: that's a filedescriptor, *NOT* a filehandle
20 The POSIX module permits you to access all (or nearly all) the standard
21 POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish
22 interfaces. Things which are C<#defines> in C, like EINTR or O_NDELAY, are
23 automatically exported into your namespace. All functions are only exported
24 if you ask for them explicitly. Most likely people will prefer to use the
25 fully-qualified function names.
27 This document gives a condensed list of the features available in the POSIX
28 module. Consult your operating system's manpages for general information on
29 most features. Consult L<perlfunc> for functions which are noted as being
30 identical to Perl's builtin functions.
32 The first section describes POSIX functions from the 1003.1 specification.
33 The second section describes some classes for signal objects, TTY objects,
34 and other miscellaneous objects. The remaining sections list various
35 constants and macros in an organization which roughly follows IEEE Std
40 The POSIX module is probably the most complex Perl module supplied with
41 the standard distribution. It incorporates autoloading, namespace games,
42 and dynamic loading of code that's in Perl, C, or both. It's a great
47 A few functions are not implemented because they are C specific. If you
48 attempt to call these, they will print a message telling you that they
49 aren't implemented, and suggest using the Perl equivalent should one
50 exist. For example, trying to access the setjmp() call will elicit the
51 message "setjmp() is C-specific: use eval {} instead".
53 Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
54 are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
55 For example, one vendor may not define EDEADLK, or the semantics of the
56 errno values set by open(2) might not be quite right. Perl does not
57 attempt to verify POSIX compliance. That means you can currently
58 successfully say "use POSIX", and then later in your program you find
59 that your vendor has been lax and there's no usable ICANON macro after
60 all. This could be construed to be a bug.
68 This is identical to the C function C<_exit()>.
72 This is identical to the C function C<abort()>.
76 This is identical to Perl's builtin C<abs()> function.
80 Determines the accessibility of a file.
82 if( POSIX::access( "/", &POSIX::R_OK ) ){
83 print "have read permission\n";
86 Returns C<undef> on failure.
90 This is identical to the C function C<acos()>.
94 This is identical to Perl's builtin C<alarm()> function.
98 This is identical to the C function C<asctime()>.
102 This is identical to the C function C<asin()>.
110 This is identical to the C function C<atan()>.
114 This is identical to Perl's builtin C<atan2()> function.
118 atexit() is C-specific: use END {} instead.
122 atof() is C-specific.
126 atoi() is C-specific.
130 atol() is C-specific.
134 bsearch() not supplied.
138 calloc() is C-specific.
142 This is identical to the C function C<ceil()>.
146 This is identical to Perl's builtin C<chdir()> function.
150 This is identical to Perl's builtin C<chmod()> function.
154 This is identical to Perl's builtin C<chown()> function.
158 Use method C<IO::Handle::clearerr()> instead.
162 This is identical to the C function C<clock()>.
166 Close the file. This uses file descriptors such as those obtained by calling
169 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
172 Returns C<undef> on failure.
176 This is identical to Perl's builtin C<closedir()> function.
180 This is identical to Perl's builtin C<cos()> function.
184 This is identical to the C function C<cosh()>.
188 Create a new file. This returns a file descriptor like the ones returned by
189 C<POSIX::open>. Use C<POSIX::close> to close the file.
191 $fd = POSIX::creat( "foo", 0611 );
196 Generates the path name for the controlling terminal.
198 $path = POSIX::ctermid();
202 This is identical to the C function C<ctime()>.
206 Get the character login name of the user.
208 $name = POSIX::cuserid();
212 This is identical to the C function C<difftime()>.
220 This is similar to the C function C<dup()>.
222 This uses file descriptors such as those obtained by calling
225 Returns C<undef> on failure.
229 This is similar to the C function C<dup2()>.
231 This uses file descriptors such as those obtained by calling
234 Returns C<undef> on failure.
238 Returns the value of errno.
240 $errno = POSIX::errno();
244 execl() is C-specific.
248 execle() is C-specific.
252 execlp() is C-specific.
256 execv() is C-specific.
260 execve() is C-specific.
264 execvp() is C-specific.
268 This is identical to Perl's builtin C<exit()> function.
272 This is identical to Perl's builtin C<exp()> function.
276 This is identical to Perl's builtin C<abs()> function.
280 Use method C<IO::Handle::close()> instead.
284 This is identical to Perl's builtin C<fcntl()> function.
288 Use method C<IO::Handle::new_from_fd()> instead.
292 Use method C<IO::Handle::eof()> instead.
296 Use method C<IO::Handle::error()> instead.
300 Use method C<IO::Handle::flush()> instead.
304 Use method C<IO::Handle::getc()> instead.
308 Use method C<IO::Seekable::getpos()> instead.
312 Use method C<IO::Handle::gets()> instead.
316 Use method C<IO::Handle::fileno()> instead.
320 This is identical to the C function C<floor()>.
324 This is identical to the C function C<fmod()>.
328 Use method C<IO::File::open()> instead.
332 This is identical to Perl's builtin C<fork()> function.
336 Retrieves the value of a configurable limit on a file or directory. This
337 uses file descriptors such as those obtained by calling C<POSIX::open>.
339 The following will determine the maximum length of the longest allowable
340 pathname on the filesystem which holds C</tmp/foo>.
342 $fd = POSIX::open( "/tmp/foo", &POSIX::O_RDONLY );
343 $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX );
345 Returns C<undef> on failure.
349 fprintf() is C-specific--use printf instead.
353 fputc() is C-specific--use print instead.
357 fputs() is C-specific--use print instead.
361 fread() is C-specific--use read instead.
365 free() is C-specific.
369 freopen() is C-specific--use open instead.
373 Return the mantissa and exponent of a floating-point number.
375 ($mantissa, $exponent) = POSIX::frexp( 3.14 );
379 fscanf() is C-specific--use <> and regular expressions instead.
383 Use method C<IO::Seekable::seek()> instead.
387 Use method C<IO::Seekable::setpos()> instead.
391 Get file status. This uses file descriptors such as those obtained by
392 calling C<POSIX::open>. The data returned is identical to the data from
393 Perl's builtin C<stat> function.
395 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
396 @stats = POSIX::fstat( $fd );
400 Use method C<IO::Seekable::tell()> instead.
404 fwrite() is C-specific--use print instead.
408 This is identical to Perl's builtin C<getc()> function.
412 Returns one character from STDIN.
416 Returns the name of the current working directory.
420 Returns the effective group id.
424 Returns the value of the specified enironment variable.
428 Returns the effective user id.
432 Returns the user's real group id.
436 This is identical to Perl's builtin C<getgrgid()> function.
440 This is identical to Perl's builtin C<getgrnam()> function.
444 Returns the ids of the user's supplementary groups.
448 This is identical to Perl's builtin C<getlogin()> function.
452 This is identical to Perl's builtin C<getpgrp()> function.
456 Returns the process's id.
460 This is identical to Perl's builtin C<getppid()> function.
464 This is identical to Perl's builtin C<getpwnam()> function.
468 This is identical to Perl's builtin C<getpwuid()> function.
472 Returns one line from STDIN.
476 Returns the user's id.
480 This is identical to Perl's builtin C<gmtime()> function.
484 This is identical to the C function, except that it can apply to a single
485 character or to a whole string.
489 This is identical to the C function, except that it can apply to a single
490 character or to a whole string.
494 Returns a boolean indicating whether the specified filehandle is connected
499 This is identical to the C function, except that it can apply to a single
500 character or to a whole string.
504 This is identical to the C function, except that it can apply to a single
505 character or to a whole string.
509 This is identical to the C function, except that it can apply to a single
510 character or to a whole string.
514 This is identical to the C function, except that it can apply to a single
515 character or to a whole string.
519 This is identical to the C function, except that it can apply to a single
520 character or to a whole string.
524 This is identical to the C function, except that it can apply to a single
525 character or to a whole string.
529 This is identical to the C function, except that it can apply to a single
530 character or to a whole string.
534 This is identical to the C function, except that it can apply to a single
535 character or to a whole string.
539 This is identical to the C function, except that it can apply to a single
540 character or to a whole string.
544 This is identical to Perl's builtin C<kill()> function.
548 labs() is C-specific, use abs instead.
552 This is identical to the C function C<ldexp()>.
556 ldiv() is C-specific, use / and int instead.
560 This is identical to Perl's builtin C<link()> function.
564 Get numeric formatting information. Returns a reference to a hash
565 containing the current locale formatting values.
567 The database for the B<de> (Deutsch or German) locale.
569 $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
570 print "Locale = $loc\n";
571 $lconv = POSIX::localeconv();
572 print "decimal_point = ", $lconv->{decimal_point}, "\n";
573 print "thousands_sep = ", $lconv->{thousands_sep}, "\n";
574 print "grouping = ", $lconv->{grouping}, "\n";
575 print "int_curr_symbol = ", $lconv->{int_curr_symbol}, "\n";
576 print "currency_symbol = ", $lconv->{currency_symbol}, "\n";
577 print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n";
578 print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n";
579 print "mon_grouping = ", $lconv->{mon_grouping}, "\n";
580 print "positive_sign = ", $lconv->{positive_sign}, "\n";
581 print "negative_sign = ", $lconv->{negative_sign}, "\n";
582 print "int_frac_digits = ", $lconv->{int_frac_digits}, "\n";
583 print "frac_digits = ", $lconv->{frac_digits}, "\n";
584 print "p_cs_precedes = ", $lconv->{p_cs_precedes}, "\n";
585 print "p_sep_by_space = ", $lconv->{p_sep_by_space}, "\n";
586 print "n_cs_precedes = ", $lconv->{n_cs_precedes}, "\n";
587 print "n_sep_by_space = ", $lconv->{n_sep_by_space}, "\n";
588 print "p_sign_posn = ", $lconv->{p_sign_posn}, "\n";
589 print "n_sign_posn = ", $lconv->{n_sign_posn}, "\n";
593 This is identical to Perl's builtin C<localtime()> function.
597 This is identical to Perl's builtin C<log()> function.
601 This is identical to the C function C<log10()>.
605 longjmp() is C-specific: use die instead.
609 Move the file's read/write position. This uses file descriptors such as
610 those obtained by calling C<POSIX::open>.
612 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
613 $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
615 Returns C<undef> on failure.
619 malloc() is C-specific.
623 This is identical to the C function C<mblen()>.
627 This is identical to the C function C<mbstowcs()>.
631 This is identical to the C function C<mbtowc()>.
635 memchr() is C-specific, use index() instead.
639 memcmp() is C-specific, use eq instead.
643 memcpy() is C-specific, use = instead.
647 memmove() is C-specific, use = instead.
651 memset() is C-specific, use x instead.
655 This is identical to Perl's builtin C<mkdir()> function.
659 This is similar to the C function C<mkfifo()>.
661 Returns C<undef> on failure.
665 Convert date/time info to a calendar time.
669 mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
671 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
672 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
673 year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
674 year 2001 is 101. Consult your system's C<mktime()> manpage for details
675 about these and the other arguments.
677 Calendar time for December 12, 1995, at 10:30 am.
679 $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
680 print "Date = ", POSIX::ctime($time_t);
682 Returns C<undef> on failure.
686 Return the integral and fractional parts of a floating-point number.
688 ($fractional, $integral) = POSIX::modf( 3.14 );
692 This is similar to the C function C<nice()>.
694 Returns C<undef> on failure.
698 offsetof() is C-specific.
702 Open a file for reading for writing. This returns file descriptors, not
703 Perl filehandles. Use C<POSIX::close> to close the file.
705 Open a file read-only with mode 0666.
707 $fd = POSIX::open( "foo" );
709 Open a file for read and write.
711 $fd = POSIX::open( "foo", &POSIX::O_RDWR );
713 Open a file for write, with truncation.
715 $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );
717 Create a new file with mode 0640. Set up the file for writing.
719 $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );
721 Returns C<undef> on failure.
725 Open a directory for reading.
727 $dir = POSIX::opendir( "/tmp" );
728 @files = POSIX::readdir( $dir );
729 POSIX::closedir( $dir );
731 Returns C<undef> on failure.
735 Retrieves the value of a configurable limit on a file or directory.
737 The following will determine the maximum length of the longest allowable
738 pathname on the filesystem which holds C</tmp>.
740 $path_max = POSIX::pathconf( "/tmp", &POSIX::_PC_PATH_MAX );
742 Returns C<undef> on failure.
746 This is similar to the C function C<pause()>.
748 Returns C<undef> on failure.
752 This is identical to the C function C<perror()>.
756 Create an interprocess channel. This returns file descriptors like those
757 returned by C<POSIX::open>.
759 ($fd0, $fd1) = POSIX::pipe();
760 POSIX::write( $fd0, "hello", 5 );
761 POSIX::read( $fd1, $buf, 5 );
765 Computes $x raised to the power $exponent.
767 $ret = POSIX::pow( $x, $exponent );
771 Prints the specified arguments to STDOUT.
775 putc() is C-specific--use print instead.
779 putchar() is C-specific--use print instead.
783 puts() is C-specific--use print instead.
787 qsort() is C-specific, use sort instead.
791 Sends the specified signal to the current process.
795 rand() is non-portable, use Perl's rand instead.
799 Read from a file. This uses file descriptors such as those obtained by
800 calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
801 read then Perl will extend it to make room for the request.
803 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
804 $bytes = POSIX::read( $fd, $buf, 3 );
806 Returns C<undef> on failure.
810 This is identical to Perl's builtin C<readdir()> function.
814 realloc() is C-specific.
818 This is identical to Perl's builtin C<unlink()> function.
822 This is identical to Perl's builtin C<rename()> function.
826 Seeks to the beginning of the file.
830 This is identical to Perl's builtin C<rewinddir()> function.
834 This is identical to Perl's builtin C<rmdir()> function.
838 scanf() is C-specific--use <> and regular expressions instead.
842 Sets the real group id for this process.
846 setjmp() is C-specific: use eval {} instead.
850 Modifies and queries program's locale. The following examples assume
852 use POSIX qw(setlocale LC_ALL LC_CTYPE);
856 The following will set the traditional UNIX system locale behavior
857 (the second argument C<"C">).
859 $loc = setlocale( LC_ALL, "C" );
861 The following will query the current LC_CTYPE category. (No second
862 argument means 'query'.)
864 $loc = setlocale( LC_CTYPE );
866 The following will set the LC_CTYPE behaviour according to the locale
867 environment variables (the second argument C<"">).
868 Please see your systems L<setlocale(3)> documentation for the locale
869 environment variables' meaning or consult L<perllocale>.
871 $loc = setlocale( LC_CTYPE, "" );
873 The following will set the LC_COLLATE behaviour to Argentinian
874 Spanish. B<NOTE>: The naming and availability of locales depends on
875 your operating system. Please consult L<perllocale> for how to find
876 out which locales are available in your system.
878 $loc = setlocale( LC_ALL, "es_AR.ISO8859-1" );
882 This is similar to the C function C<setpgid()>.
884 Returns C<undef> on failure.
888 This is identical to the C function C<setsid()>.
892 Sets the real user id for this process.
896 Detailed signal management. This uses C<POSIX::SigAction> objects for the
897 C<action> and C<oldaction> arguments. Consult your system's C<sigaction>
902 sigaction(sig, action, oldaction = 0)
904 Returns C<undef> on failure.
908 siglongjmp() is C-specific: use die instead.
912 Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
913 objects for the C<sigset> argument. Consult your system's C<sigpending>
920 Returns C<undef> on failure.
924 Change and/or examine calling process's signal mask. This uses
925 C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
926 Consult your system's C<sigprocmask> manpage for details.
930 sigprocmask(how, sigset, oldsigset = 0)
932 Returns C<undef> on failure.
936 sigsetjmp() is C-specific: use eval {} instead.
940 Install a signal mask and suspend process until signal arrives. This uses
941 C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
942 system's C<sigsuspend> manpage for details.
946 sigsuspend(signal_mask)
948 Returns C<undef> on failure.
952 This is identical to Perl's builtin C<sin()> function.
956 This is identical to the C function C<sinh()>.
960 This is identical to Perl's builtin C<sleep()> function.
964 This is identical to Perl's builtin C<sprintf()> function.
968 This is identical to Perl's builtin C<sqrt()> function.
976 sscanf() is C-specific--use regular expressions instead.
980 This is identical to Perl's builtin C<stat()> function.
984 strcat() is C-specific, use .= instead.
988 strchr() is C-specific, use index() instead.
992 strcmp() is C-specific, use eq instead.
996 This is identical to the C function C<strcoll()>.
1000 strcpy() is C-specific, use = instead.
1004 strcspn() is C-specific, use regular expressions instead.
1008 Returns the error string for the specified errno.
1012 Convert date and time information to string. Returns the string.
1016 strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
1018 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
1019 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
1020 year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the
1021 year 2001 is 101. Consult your system's C<strftime()> manpage for details
1022 about these and the other arguments.
1023 If you want your code to be portable, your format (C<fmt>) argument
1024 should use only the conversion specifiers defined by the ANSI C
1025 standard. These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
1026 The given arguments are made consistent
1027 by calling C<mktime()> before calling your system's C<strftime()> function.
1029 The string for Tuesday, December 12, 1995.
1031 $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
1036 strlen() is C-specific, use length instead.
1040 strncat() is C-specific, use .= instead.
1044 strncmp() is C-specific, use eq instead.
1048 strncpy() is C-specific, use = instead.
1052 stroul() is C-specific.
1056 strpbrk() is C-specific.
1060 strrchr() is C-specific, use rindex() instead.
1064 strspn() is C-specific.
1068 This is identical to Perl's builtin C<index()> function.
1072 String to double translation. Returns the parsed number and the number
1073 of characters in the unparsed portion of the string. Truly
1074 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1075 error, so clear $! before calling strtod. However, non-POSIX systems
1076 may not check for overflow, and therefore will never set $!.
1078 strtod should respect any POSIX I<setlocale()> settings.
1080 To parse a string $str as a floating point number use
1083 ($num, $n_unparsed) = POSIX::strtod($str);
1085 The second returned item and $! can be used to check for valid input:
1087 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1088 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1091 When called in a scalar context strtod returns the parsed number.
1095 strtok() is C-specific.
1099 String to (long) integer translation. Returns the parsed number and
1100 the number of characters in the unparsed portion of the string. Truly
1101 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1102 error, so clear $! before calling strtol. However, non-POSIX systems
1103 may not check for overflow, and therefore will never set $!.
1105 strtol should respect any POSIX I<setlocale()> settings.
1107 To parse a string $str as a number in some base $base use
1110 ($num, $n_unparsed) = POSIX::strtol($str, $base);
1112 The base should be zero or between 2 and 36, inclusive. When the base
1113 is zero or omitted strtol will use the string itself to determine the
1114 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1115 octal; any other leading characters mean decimal. Thus, "1234" is
1116 parsed as a decimal number, "01234" as an octal number, and "0x1234"
1117 as a hexadecimal number.
1119 The second returned item and $! can be used to check for valid input:
1121 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1122 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1125 When called in a scalar context strtol returns the parsed number.
1129 String to unsigned (long) integer translation. strtoul is identical
1130 to strtol except that strtoul only parses unsigned integers. See
1131 I<strtol> for details.
1133 Note: Some vendors supply strtod and strtol but not strtoul.
1134 Other vendors that do suply strtoul parse "-1" as a valid value.
1138 String transformation. Returns the transformed string.
1140 $dst = POSIX::strxfrm( $src );
1144 Retrieves values of system configurable variables.
1146 The following will get the machine's clock speed.
1148 $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1150 Returns C<undef> on failure.
1154 This is identical to Perl's builtin C<system()> function.
1158 This is identical to the C function C<tan()>.
1162 This is identical to the C function C<tanh()>.
1166 This is similar to the C function C<tcdrain()>.
1168 Returns C<undef> on failure.
1172 This is similar to the C function C<tcflow()>.
1174 Returns C<undef> on failure.
1178 This is similar to the C function C<tcflush()>.
1180 Returns C<undef> on failure.
1184 This is identical to the C function C<tcgetpgrp()>.
1188 This is similar to the C function C<tcsendbreak()>.
1190 Returns C<undef> on failure.
1194 This is similar to the C function C<tcsetpgrp()>.
1196 Returns C<undef> on failure.
1200 This is identical to Perl's builtin C<time()> function.
1204 The times() function returns elapsed realtime since some point in the past
1205 (such as system startup), user and system times for this process, and user
1206 and system times used by child processes. All times are returned in clock
1209 ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
1211 Note: Perl's builtin C<times()> function returns four values, measured in
1216 Use method C<IO::File::new_tmpfile()> instead.
1220 Returns a name for a temporary file.
1222 $tmpfile = POSIX::tmpnam();
1226 This is identical to Perl's builtin C<lc()> function.
1230 This is identical to Perl's builtin C<uc()> function.
1234 This is identical to the C function C<ttyname()>.
1238 Retrieves the time conversion information from the C<tzname> variable.
1241 ($std, $dst) = POSIX::tzname();
1245 This is identical to the C function C<tzset()>.
1249 This is identical to Perl's builtin C<umask()> function.
1253 Get name of current operating system.
1255 ($sysname, $nodename, $release, $version, $machine ) = POSIX::uname();
1259 Use method C<IO::Handle::ungetc()> instead.
1263 This is identical to Perl's builtin C<unlink()> function.
1267 This is identical to Perl's builtin C<utime()> function.
1271 vfprintf() is C-specific.
1275 vprintf() is C-specific.
1279 vsprintf() is C-specific.
1283 This is identical to Perl's builtin C<wait()> function.
1287 Wait for a child process to change state. This is identical to Perl's
1288 builtin C<waitpid()> function.
1290 $pid = POSIX::waitpid( -1, &POSIX::WNOHANG );
1291 print "status = ", ($? / 256), "\n";
1295 This is identical to the C function C<wcstombs()>.
1299 This is identical to the C function C<wctomb()>.
1303 Write to a file. This uses file descriptors such as those obtained by
1304 calling C<POSIX::open>.
1306 $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
1308 $bytes = POSIX::write( $b, $buf, 5 );
1310 Returns C<undef> on failure.
1316 =head2 POSIX::SigAction
1322 Creates a new C<POSIX::SigAction> object which corresponds to the C
1323 C<struct sigaction>. This object will be destroyed automatically when it is
1324 no longer needed. The first parameter is the fully-qualified name of a sub
1325 which is a signal-handler. The second parameter is a C<POSIX::SigSet>
1326 object, it defaults to the empty set. The third parameter contains the
1327 C<sa_flags>, it defaults to 0.
1329 $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
1330 $sigaction = POSIX::SigAction->new( 'main::handler', $sigset, &POSIX::SA_NOCLDSTOP );
1332 This C<POSIX::SigAction> object should be used with the C<POSIX::sigaction()>
1337 =head2 POSIX::SigSet
1343 Create a new SigSet object. This object will be destroyed automatically
1344 when it is no longer needed. Arguments may be supplied to initialize the
1347 Create an empty set.
1349 $sigset = POSIX::SigSet->new;
1351 Create a set with SIGUSR1.
1353 $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
1357 Add a signal to a SigSet object.
1359 $sigset->addset( &POSIX::SIGUSR2 );
1361 Returns C<undef> on failure.
1365 Remove a signal from the SigSet object.
1367 $sigset->delset( &POSIX::SIGUSR2 );
1369 Returns C<undef> on failure.
1373 Initialize the SigSet object to be empty.
1375 $sigset->emptyset();
1377 Returns C<undef> on failure.
1381 Initialize the SigSet object to include all signals.
1385 Returns C<undef> on failure.
1389 Tests the SigSet object to see if it contains a specific signal.
1391 if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
1392 print "contains SIGUSR1\n";
1397 =head2 POSIX::Termios
1403 Create a new Termios object. This object will be destroyed automatically
1404 when it is no longer needed. A Termios object corresponds to the termios
1405 C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
1406 and setattr() sets a file descriptor's parameters to match Termios' contents.
1408 $termios = POSIX::Termios->new;
1412 Get terminal control attributes.
1414 Obtain the attributes for stdin.
1418 Obtain the attributes for stdout.
1420 $termios->getattr( 1 )
1422 Returns C<undef> on failure.
1426 Retrieve a value from the c_cc field of a termios object. The c_cc field is
1427 an array so an index must be specified.
1429 $c_cc[1] = $termios->getcc(1);
1433 Retrieve the c_cflag field of a termios object.
1435 $c_cflag = $termios->getcflag;
1439 Retrieve the c_iflag field of a termios object.
1441 $c_iflag = $termios->getiflag;
1445 Retrieve the input baud rate.
1447 $ispeed = $termios->getispeed;
1451 Retrieve the c_lflag field of a termios object.
1453 $c_lflag = $termios->getlflag;
1457 Retrieve the c_oflag field of a termios object.
1459 $c_oflag = $termios->getoflag;
1463 Retrieve the output baud rate.
1465 $ospeed = $termios->getospeed;
1469 Set terminal control attributes.
1471 Set attributes immediately for stdout.
1473 $termios->setattr( 1, &POSIX::TCSANOW );
1475 Returns C<undef> on failure.
1479 Set a value in the c_cc field of a termios object. The c_cc field is an
1480 array so an index must be specified.
1482 $termios->setcc( &POSIX::VEOF, 1 );
1486 Set the c_cflag field of a termios object.
1488 $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
1492 Set the c_iflag field of a termios object.
1494 $termios->setiflag( $c_iflag | &POSIX::BRKINT );
1498 Set the input baud rate.
1500 $termios->setispeed( &POSIX::B9600 );
1502 Returns C<undef> on failure.
1506 Set the c_lflag field of a termios object.
1508 $termios->setlflag( $c_lflag | &POSIX::ECHO );
1512 Set the c_oflag field of a termios object.
1514 $termios->setoflag( $c_oflag | &POSIX::OPOST );
1518 Set the output baud rate.
1520 $termios->setospeed( &POSIX::B9600 );
1522 Returns C<undef> on failure.
1524 =item Baud rate values
1526 B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
1528 =item Terminal interface values
1530 TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
1532 =item c_cc field values
1534 VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
1536 =item c_cflag field values
1538 CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
1540 =item c_iflag field values
1542 BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
1544 =item c_lflag field values
1546 ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
1548 =item c_oflag field values
1554 =head1 PATHNAME CONSTANTS
1560 _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE
1564 =head1 POSIX CONSTANTS
1570 _POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
1574 =head1 SYSTEM CONFIGURATION
1580 _SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
1590 E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
1591 EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
1592 EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
1593 EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
1594 ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
1595 ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
1596 ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
1597 EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
1598 ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
1599 ETXTBSY EUSERS EWOULDBLOCK EXDEV
1609 FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY
1619 DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP
1629 ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
1639 LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
1659 SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
1660 SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
1661 SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
1662 SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
1673 S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
1677 S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
1687 EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
1697 BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
1707 CLK_TCK CLOCKS_PER_SEC
1717 R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STRERR_FILENO W_OK X_OK
1731 WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
1737 This document generated by ./mkposixman.PL version 19960129.