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 as though by calling C<mktime()> before calling your system's
1028 C<strftime()> function, except that the C<isdst> value is not affected.
1030 The string for Tuesday, December 12, 1995.
1032 $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
1037 strlen() is C-specific, use length instead.
1041 strncat() is C-specific, use .= instead.
1045 strncmp() is C-specific, use eq instead.
1049 strncpy() is C-specific, use = instead.
1053 stroul() is C-specific.
1057 strpbrk() is C-specific.
1061 strrchr() is C-specific, use rindex() instead.
1065 strspn() is C-specific.
1069 This is identical to Perl's builtin C<index()> function.
1073 String to double translation. Returns the parsed number and the number
1074 of characters in the unparsed portion of the string. Truly
1075 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1076 error, so clear $! before calling strtod. However, non-POSIX systems
1077 may not check for overflow, and therefore will never set $!.
1079 strtod should respect any POSIX I<setlocale()> settings.
1081 To parse a string $str as a floating point number use
1084 ($num, $n_unparsed) = POSIX::strtod($str);
1086 The second returned item and $! can be used to check for valid input:
1088 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1089 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1092 When called in a scalar context strtod returns the parsed number.
1096 strtok() is C-specific.
1100 String to (long) integer translation. Returns the parsed number and
1101 the number of characters in the unparsed portion of the string. Truly
1102 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1103 error, so clear $! before calling strtol. However, non-POSIX systems
1104 may not check for overflow, and therefore will never set $!.
1106 strtol should respect any POSIX I<setlocale()> settings.
1108 To parse a string $str as a number in some base $base use
1111 ($num, $n_unparsed) = POSIX::strtol($str, $base);
1113 The base should be zero or between 2 and 36, inclusive. When the base
1114 is zero or omitted strtol will use the string itself to determine the
1115 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1116 octal; any other leading characters mean decimal. Thus, "1234" is
1117 parsed as a decimal number, "01234" as an octal number, and "0x1234"
1118 as a hexadecimal number.
1120 The second returned item and $! can be used to check for valid input:
1122 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1123 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1126 When called in a scalar context strtol returns the parsed number.
1130 String to unsigned (long) integer translation. strtoul is identical
1131 to strtol except that strtoul only parses unsigned integers. See
1132 I<strtol> for details.
1134 Note: Some vendors supply strtod and strtol but not strtoul.
1135 Other vendors that do suply strtoul parse "-1" as a valid value.
1139 String transformation. Returns the transformed string.
1141 $dst = POSIX::strxfrm( $src );
1145 Retrieves values of system configurable variables.
1147 The following will get the machine's clock speed.
1149 $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1151 Returns C<undef> on failure.
1155 This is identical to Perl's builtin C<system()> function.
1159 This is identical to the C function C<tan()>.
1163 This is identical to the C function C<tanh()>.
1167 This is similar to the C function C<tcdrain()>.
1169 Returns C<undef> on failure.
1173 This is similar to the C function C<tcflow()>.
1175 Returns C<undef> on failure.
1179 This is similar to the C function C<tcflush()>.
1181 Returns C<undef> on failure.
1185 This is identical to the C function C<tcgetpgrp()>.
1189 This is similar to the C function C<tcsendbreak()>.
1191 Returns C<undef> on failure.
1195 This is similar to the C function C<tcsetpgrp()>.
1197 Returns C<undef> on failure.
1201 This is identical to Perl's builtin C<time()> function.
1205 The times() function returns elapsed realtime since some point in the past
1206 (such as system startup), user and system times for this process, and user
1207 and system times used by child processes. All times are returned in clock
1210 ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
1212 Note: Perl's builtin C<times()> function returns four values, measured in
1217 Use method C<IO::File::new_tmpfile()> instead.
1221 Returns a name for a temporary file.
1223 $tmpfile = POSIX::tmpnam();
1227 This is identical to Perl's builtin C<lc()> function.
1231 This is identical to Perl's builtin C<uc()> function.
1235 This is identical to the C function C<ttyname()>.
1239 Retrieves the time conversion information from the C<tzname> variable.
1242 ($std, $dst) = POSIX::tzname();
1246 This is identical to the C function C<tzset()>.
1250 This is identical to Perl's builtin C<umask()> function.
1254 Get name of current operating system.
1256 ($sysname, $nodename, $release, $version, $machine ) = POSIX::uname();
1260 Use method C<IO::Handle::ungetc()> instead.
1264 This is identical to Perl's builtin C<unlink()> function.
1268 This is identical to Perl's builtin C<utime()> function.
1272 vfprintf() is C-specific.
1276 vprintf() is C-specific.
1280 vsprintf() is C-specific.
1284 This is identical to Perl's builtin C<wait()> function.
1288 Wait for a child process to change state. This is identical to Perl's
1289 builtin C<waitpid()> function.
1291 $pid = POSIX::waitpid( -1, &POSIX::WNOHANG );
1292 print "status = ", ($? / 256), "\n";
1296 This is identical to the C function C<wcstombs()>.
1300 This is identical to the C function C<wctomb()>.
1304 Write to a file. This uses file descriptors such as those obtained by
1305 calling C<POSIX::open>.
1307 $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
1309 $bytes = POSIX::write( $b, $buf, 5 );
1311 Returns C<undef> on failure.
1317 =head2 POSIX::SigAction
1323 Creates a new C<POSIX::SigAction> object which corresponds to the C
1324 C<struct sigaction>. This object will be destroyed automatically when it is
1325 no longer needed. The first parameter is the fully-qualified name of a sub
1326 which is a signal-handler. The second parameter is a C<POSIX::SigSet>
1327 object, it defaults to the empty set. The third parameter contains the
1328 C<sa_flags>, it defaults to 0.
1330 $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
1331 $sigaction = POSIX::SigAction->new( 'main::handler', $sigset, &POSIX::SA_NOCLDSTOP );
1333 This C<POSIX::SigAction> object should be used with the C<POSIX::sigaction()>
1338 =head2 POSIX::SigSet
1344 Create a new SigSet object. This object will be destroyed automatically
1345 when it is no longer needed. Arguments may be supplied to initialize the
1348 Create an empty set.
1350 $sigset = POSIX::SigSet->new;
1352 Create a set with SIGUSR1.
1354 $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
1358 Add a signal to a SigSet object.
1360 $sigset->addset( &POSIX::SIGUSR2 );
1362 Returns C<undef> on failure.
1366 Remove a signal from the SigSet object.
1368 $sigset->delset( &POSIX::SIGUSR2 );
1370 Returns C<undef> on failure.
1374 Initialize the SigSet object to be empty.
1376 $sigset->emptyset();
1378 Returns C<undef> on failure.
1382 Initialize the SigSet object to include all signals.
1386 Returns C<undef> on failure.
1390 Tests the SigSet object to see if it contains a specific signal.
1392 if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
1393 print "contains SIGUSR1\n";
1398 =head2 POSIX::Termios
1404 Create a new Termios object. This object will be destroyed automatically
1405 when it is no longer needed. A Termios object corresponds to the termios
1406 C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
1407 and setattr() sets a file descriptor's parameters to match Termios' contents.
1409 $termios = POSIX::Termios->new;
1413 Get terminal control attributes.
1415 Obtain the attributes for stdin.
1419 Obtain the attributes for stdout.
1421 $termios->getattr( 1 )
1423 Returns C<undef> on failure.
1427 Retrieve a value from the c_cc field of a termios object. The c_cc field is
1428 an array so an index must be specified.
1430 $c_cc[1] = $termios->getcc(1);
1434 Retrieve the c_cflag field of a termios object.
1436 $c_cflag = $termios->getcflag;
1440 Retrieve the c_iflag field of a termios object.
1442 $c_iflag = $termios->getiflag;
1446 Retrieve the input baud rate.
1448 $ispeed = $termios->getispeed;
1452 Retrieve the c_lflag field of a termios object.
1454 $c_lflag = $termios->getlflag;
1458 Retrieve the c_oflag field of a termios object.
1460 $c_oflag = $termios->getoflag;
1464 Retrieve the output baud rate.
1466 $ospeed = $termios->getospeed;
1470 Set terminal control attributes.
1472 Set attributes immediately for stdout.
1474 $termios->setattr( 1, &POSIX::TCSANOW );
1476 Returns C<undef> on failure.
1480 Set a value in the c_cc field of a termios object. The c_cc field is an
1481 array so an index must be specified.
1483 $termios->setcc( &POSIX::VEOF, 1 );
1487 Set the c_cflag field of a termios object.
1489 $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
1493 Set the c_iflag field of a termios object.
1495 $termios->setiflag( $c_iflag | &POSIX::BRKINT );
1499 Set the input baud rate.
1501 $termios->setispeed( &POSIX::B9600 );
1503 Returns C<undef> on failure.
1507 Set the c_lflag field of a termios object.
1509 $termios->setlflag( $c_lflag | &POSIX::ECHO );
1513 Set the c_oflag field of a termios object.
1515 $termios->setoflag( $c_oflag | &POSIX::OPOST );
1519 Set the output baud rate.
1521 $termios->setospeed( &POSIX::B9600 );
1523 Returns C<undef> on failure.
1525 =item Baud rate values
1527 B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
1529 =item Terminal interface values
1531 TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
1533 =item c_cc field values
1535 VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
1537 =item c_cflag field values
1539 CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
1541 =item c_iflag field values
1543 BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
1545 =item c_lflag field values
1547 ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
1549 =item c_oflag field values
1555 =head1 PATHNAME CONSTANTS
1561 _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
1565 =head1 POSIX CONSTANTS
1571 _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
1575 =head1 SYSTEM CONFIGURATION
1581 _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
1591 E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
1592 EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
1593 EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
1594 EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
1595 ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
1596 ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
1597 ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
1598 EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
1599 ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
1600 ETXTBSY EUSERS EWOULDBLOCK EXDEV
1610 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
1620 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
1630 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
1640 LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
1660 SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
1661 SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
1662 SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
1663 SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
1674 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
1678 S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
1688 EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
1698 BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
1708 CLK_TCK CLOCKS_PER_SEC
1718 R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
1732 WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
1738 This document generated by ./mkposixman.PL version 19960129.