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 This is similar to the C function C<mknod()>.
667 Returns C<undef> on failure.
671 Convert date/time info to a calendar time.
675 mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
677 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
678 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
679 year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
680 year 2001 is 101. Consult your system's C<mktime()> manpage for details
681 about these and the other arguments.
683 Calendar time for December 12, 1995, at 10:30 am.
685 $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
686 print "Date = ", POSIX::ctime($time_t);
688 Returns C<undef> on failure.
692 Return the integral and fractional parts of a floating-point number.
694 ($fractional, $integral) = POSIX::modf( 3.14 );
698 This is similar to the C function C<nice()>.
700 Returns C<undef> on failure.
704 offsetof() is C-specific.
708 Open a file for reading for writing. This returns file descriptors, not
709 Perl filehandles. Use C<POSIX::close> to close the file.
711 Open a file read-only with mode 0666.
713 $fd = POSIX::open( "foo" );
715 Open a file for read and write.
717 $fd = POSIX::open( "foo", &POSIX::O_RDWR );
719 Open a file for write, with truncation.
721 $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );
723 Create a new file with mode 0640. Set up the file for writing.
725 $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );
727 Returns C<undef> on failure.
731 Open a directory for reading.
733 $dir = POSIX::opendir( "/tmp" );
734 @files = POSIX::readdir( $dir );
735 POSIX::closedir( $dir );
737 Returns C<undef> on failure.
741 Retrieves the value of a configurable limit on a file or directory.
743 The following will determine the maximum length of the longest allowable
744 pathname on the filesystem which holds C</tmp>.
746 $path_max = POSIX::pathconf( "/tmp", &POSIX::_PC_PATH_MAX );
748 Returns C<undef> on failure.
752 This is similar to the C function C<pause()>.
754 Returns C<undef> on failure.
758 This is identical to the C function C<perror()>.
762 Create an interprocess channel. This returns file descriptors like those
763 returned by C<POSIX::open>.
765 ($fd0, $fd1) = POSIX::pipe();
766 POSIX::write( $fd0, "hello", 5 );
767 POSIX::read( $fd1, $buf, 5 );
771 Computes $x raised to the power $exponent.
773 $ret = POSIX::pow( $x, $exponent );
777 Prints the specified arguments to STDOUT.
781 putc() is C-specific--use print instead.
785 putchar() is C-specific--use print instead.
789 puts() is C-specific--use print instead.
793 qsort() is C-specific, use sort instead.
797 Sends the specified signal to the current process.
801 rand() is non-portable, use Perl's rand instead.
805 Read from a file. This uses file descriptors such as those obtained by
806 calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
807 read then Perl will extend it to make room for the request.
809 $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
810 $bytes = POSIX::read( $fd, $buf, 3 );
812 Returns C<undef> on failure.
816 This is identical to Perl's builtin C<readdir()> function.
820 realloc() is C-specific.
824 This is identical to Perl's builtin C<unlink()> function.
828 This is identical to Perl's builtin C<rename()> function.
832 Seeks to the beginning of the file.
836 This is identical to Perl's builtin C<rewinddir()> function.
840 This is identical to Perl's builtin C<rmdir()> function.
844 scanf() is C-specific--use <> and regular expressions instead.
848 Sets the real group id for this process.
852 setjmp() is C-specific: use eval {} instead.
856 Modifies and queries program's locale.
858 The following will set the traditional UNIX system locale behavior
859 (the second argument C<"C">).
861 $loc = POSIX::setlocale( &POSIX::LC_ALL, "C" );
863 The following will query (the missing second argument) the current
866 $loc = POSIX::setlocale( &POSIX::LC_CTYPE);
868 The following will set the LC_CTYPE behaviour according to the locale
869 environment variables (the second argument C<"">).
870 Please see your systems L<setlocale(3)> documentation for the locale
871 environment variables' meaning or consult L<perllocale>.
873 $loc = POSIX::setlocale( &POSIX::LC_CTYPE, "");
875 The following will set the LC_COLLATE behaviour to Argentinian
876 Spanish. B<NOTE>: The naming and availability of locales depends on
877 your operating system. Please consult L<perllocale> for how to find
878 out which locales are available in your system.
880 $loc = POSIX::setlocale( &POSIX::LC_ALL, "es_AR.ISO8859-1" );
884 This is similar to the C function C<setpgid()>.
886 Returns C<undef> on failure.
890 This is identical to the C function C<setsid()>.
894 Sets the real user id for this process.
898 Detailed signal management. This uses C<POSIX::SigAction> objects for the
899 C<action> and C<oldaction> arguments. Consult your system's C<sigaction>
904 sigaction(sig, action, oldaction = 0)
906 Returns C<undef> on failure.
910 siglongjmp() is C-specific: use die instead.
914 Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
915 objects for the C<sigset> argument. Consult your system's C<sigpending>
922 Returns C<undef> on failure.
926 Change and/or examine calling process's signal mask. This uses
927 C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
928 Consult your system's C<sigprocmask> manpage for details.
932 sigprocmask(how, sigset, oldsigset = 0)
934 Returns C<undef> on failure.
938 sigsetjmp() is C-specific: use eval {} instead.
942 Install a signal mask and suspend process until signal arrives. This uses
943 C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
944 system's C<sigsuspend> manpage for details.
948 sigsuspend(signal_mask)
950 Returns C<undef> on failure.
954 This is identical to Perl's builtin C<sin()> function.
958 This is identical to the C function C<sinh()>.
962 This is identical to Perl's builtin C<sleep()> function.
966 This is identical to Perl's builtin C<sprintf()> function.
970 This is identical to Perl's builtin C<sqrt()> function.
978 sscanf() is C-specific--use regular expressions instead.
982 This is identical to Perl's builtin C<stat()> function.
986 strcat() is C-specific, use .= instead.
990 strchr() is C-specific, use index() instead.
994 strcmp() is C-specific, use eq instead.
998 This is identical to the C function C<strcoll()>.
1002 strcpy() is C-specific, use = instead.
1006 strcspn() is C-specific, use regular expressions instead.
1010 Returns the error string for the specified errno.
1014 Convert date and time information to string. Returns the string.
1018 strftime(fmt, sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
1020 The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
1021 I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
1022 year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
1023 year 2001 is 101. Consult your system's C<strftime()> manpage for details
1024 about these and the other arguments.
1026 The string for Tuesday, December 12, 1995.
1028 $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
1033 strlen() is C-specific, use length instead.
1037 strncat() is C-specific, use .= instead.
1041 strncmp() is C-specific, use eq instead.
1045 strncpy() is C-specific, use = instead.
1049 stroul() is C-specific.
1053 strpbrk() is C-specific.
1057 strrchr() is C-specific, use rindex() instead.
1061 strspn() is C-specific.
1065 This is identical to Perl's builtin C<index()> function.
1069 String to double translation. Returns the parsed number and the number
1070 of characters in the unparsed portion of the string. Truly
1071 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1072 error, so clear $! before calling strtod. However, non-POSIX systems
1073 may not check for overflow, and therefore will never set $!.
1075 strtod should respect any POSIX I<setlocale()> settings.
1077 To parse a string $str as a floating point number use
1080 ($num, $n_unparsed) = POSIX::strtod($str);
1082 The second returned item and $! can be used to check for valid input:
1084 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1085 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1088 When called in a scalar context strtod returns the parsed number.
1092 strtok() is C-specific.
1096 String to (long) integer translation. Returns the parsed number and
1097 the number of characters in the unparsed portion of the string. Truly
1098 POSIX-compliant systems set $! ($ERRNO) to indicate a translation
1099 error, so clear $! before calling strtol. However, non-POSIX systems
1100 may not check for overflow, and therefore will never set $!.
1102 strtol should respect any POSIX I<setlocale()> settings.
1104 To parse a string $str as a number in some base $base use
1107 ($num, $n_unparsed) = POSIX::strtol($str, $base);
1109 The base should be zero or between 2 and 36, inclusive. When the base
1110 is zero or omitted strtol will use the string itself to determine the
1111 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
1112 octal; any other leading characters mean decimal. Thus, "1234" is
1113 parsed as a decimal number, "01234" as an octal number, and "0x1234"
1114 as a hexadecimal number.
1116 The second returned item and $! can be used to check for valid input:
1118 if (($str eq '') || ($n_unparsed != 0) || !$!) {
1119 die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
1122 When called in a scalar context strtol returns the parsed number.
1126 String to unsigned (long) integer translation. strtoul is identical
1127 to strtol except that strtoul only parses unsigned integers. See
1128 I<strtol> for details.
1130 Note: Some vendors supply strtod and strtol but not strtoul.
1131 Other vendors that do suply strtoul parse "-1" as a valid value.
1135 String transformation. Returns the transformed string.
1137 $dst = POSIX::strxfrm( $src );
1141 Retrieves values of system configurable variables.
1143 The following will get the machine's clock speed.
1145 $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
1147 Returns C<undef> on failure.
1151 This is identical to Perl's builtin C<system()> function.
1155 This is identical to the C function C<tan()>.
1159 This is identical to the C function C<tanh()>.
1163 This is similar to the C function C<tcdrain()>.
1165 Returns C<undef> on failure.
1169 This is similar to the C function C<tcflow()>.
1171 Returns C<undef> on failure.
1175 This is similar to the C function C<tcflush()>.
1177 Returns C<undef> on failure.
1181 This is identical to the C function C<tcgetpgrp()>.
1185 This is similar to the C function C<tcsendbreak()>.
1187 Returns C<undef> on failure.
1191 This is similar to the C function C<tcsetpgrp()>.
1193 Returns C<undef> on failure.
1197 This is identical to Perl's builtin C<time()> function.
1201 The times() function returns elapsed realtime since some point in the past
1202 (such as system startup), user and system times for this process, and user
1203 and system times used by child processes. All times are returned in clock
1206 ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
1208 Note: Perl's builtin C<times()> function returns four values, measured in
1213 Use method C<IO::File::new_tmpfile()> instead.
1217 Returns a name for a temporary file.
1219 $tmpfile = POSIX::tmpnam();
1223 This is identical to Perl's builtin C<lc()> function.
1227 This is identical to Perl's builtin C<uc()> function.
1231 This is identical to the C function C<ttyname()>.
1235 Retrieves the time conversion information from the C<tzname> variable.
1238 ($std, $dst) = POSIX::tzname();
1242 This is identical to the C function C<tzset()>.
1246 This is identical to Perl's builtin C<umask()> function.
1250 Get name of current operating system.
1252 ($sysname, $nodename, $release, $version, $machine ) = POSIX::uname();
1256 Use method C<IO::Handle::ungetc()> instead.
1260 This is identical to Perl's builtin C<unlink()> function.
1264 This is identical to Perl's builtin C<utime()> function.
1268 vfprintf() is C-specific.
1272 vprintf() is C-specific.
1276 vsprintf() is C-specific.
1280 This is identical to Perl's builtin C<wait()> function.
1284 Wait for a child process to change state. This is identical to Perl's
1285 builtin C<waitpid()> function.
1287 $pid = POSIX::waitpid( -1, &POSIX::WNOHANG );
1288 print "status = ", ($? / 256), "\n";
1292 This is identical to the C function C<wcstombs()>.
1296 This is identical to the C function C<wctomb()>.
1300 Write to a file. This uses file descriptors such as those obtained by
1301 calling C<POSIX::open>.
1303 $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
1305 $bytes = POSIX::write( $b, $buf, 5 );
1307 Returns C<undef> on failure.
1313 =head2 POSIX::SigAction
1319 Creates a new C<POSIX::SigAction> object which corresponds to the C
1320 C<struct sigaction>. This object will be destroyed automatically when it is
1321 no longer needed. The first parameter is the fully-qualified name of a sub
1322 which is a signal-handler. The second parameter is a C<POSIX::SigSet>
1323 object, it defaults to the empty set. The third parameter contains the
1324 C<sa_flags>, it defaults to 0.
1326 $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
1327 $sigaction = POSIX::SigAction->new( 'main::handler', $sigset, &POSIX::SA_NOCLDSTOP );
1329 This C<POSIX::SigAction> object should be used with the C<POSIX::sigaction()>
1334 =head2 POSIX::SigSet
1340 Create a new SigSet object. This object will be destroyed automatically
1341 when it is no longer needed. Arguments may be supplied to initialize the
1344 Create an empty set.
1346 $sigset = POSIX::SigSet->new;
1348 Create a set with SIGUSR1.
1350 $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
1354 Add a signal to a SigSet object.
1356 $sigset->addset( &POSIX::SIGUSR2 );
1358 Returns C<undef> on failure.
1362 Remove a signal from the SigSet object.
1364 $sigset->delset( &POSIX::SIGUSR2 );
1366 Returns C<undef> on failure.
1370 Initialize the SigSet object to be empty.
1372 $sigset->emptyset();
1374 Returns C<undef> on failure.
1378 Initialize the SigSet object to include all signals.
1382 Returns C<undef> on failure.
1386 Tests the SigSet object to see if it contains a specific signal.
1388 if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
1389 print "contains SIGUSR1\n";
1394 =head2 POSIX::Termios
1400 Create a new Termios object. This object will be destroyed automatically
1401 when it is no longer needed. A Termios object corresponds to the termios
1402 C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
1403 and setattr() sets a file descriptor's parameters to match Termios' contents.
1405 $termios = POSIX::Termios->new;
1409 Get terminal control attributes.
1411 Obtain the attributes for stdin.
1415 Obtain the attributes for stdout.
1417 $termios->getattr( 1 )
1419 Returns C<undef> on failure.
1423 Retrieve a value from the c_cc field of a termios object. The c_cc field is
1424 an array so an index must be specified.
1426 $c_cc[1] = $termios->getcc(1);
1430 Retrieve the c_cflag field of a termios object.
1432 $c_cflag = $termios->getcflag;
1436 Retrieve the c_iflag field of a termios object.
1438 $c_iflag = $termios->getiflag;
1442 Retrieve the input baud rate.
1444 $ispeed = $termios->getispeed;
1448 Retrieve the c_lflag field of a termios object.
1450 $c_lflag = $termios->getlflag;
1454 Retrieve the c_oflag field of a termios object.
1456 $c_oflag = $termios->getoflag;
1460 Retrieve the output baud rate.
1462 $ospeed = $termios->getospeed;
1466 Set terminal control attributes.
1468 Set attributes immediately for stdout.
1470 $termios->setattr( 1, &POSIX::TCSANOW );
1472 Returns C<undef> on failure.
1476 Set a value in the c_cc field of a termios object. The c_cc field is an
1477 array so an index must be specified.
1479 $termios->setcc( &POSIX::VEOF, 1 );
1483 Set the c_cflag field of a termios object.
1485 $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
1489 Set the c_iflag field of a termios object.
1491 $termios->setiflag( $c_iflag | &POSIX::BRKINT );
1495 Set the input baud rate.
1497 $termios->setispeed( &POSIX::B9600 );
1499 Returns C<undef> on failure.
1503 Set the c_lflag field of a termios object.
1505 $termios->setlflag( $c_lflag | &POSIX::ECHO );
1509 Set the c_oflag field of a termios object.
1511 $termios->setoflag( $c_oflag | &POSIX::OPOST );
1515 Set the output baud rate.
1517 $termios->setospeed( &POSIX::B9600 );
1519 Returns C<undef> on failure.
1521 =item Baud rate values
1523 B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
1525 =item Terminal interface values
1527 TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
1529 =item c_cc field values
1531 VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
1533 =item c_cflag field values
1535 CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
1537 =item c_iflag field values
1539 BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
1541 =item c_lflag field values
1543 ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
1545 =item c_oflag field values
1551 =head1 PATHNAME CONSTANTS
1557 _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
1561 =head1 POSIX CONSTANTS
1567 _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
1571 =head1 SYSTEM CONFIGURATION
1577 _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
1587 E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
1588 EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
1589 EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
1590 EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
1591 ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
1592 ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
1593 ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
1594 EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
1595 ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
1596 ETXTBSY EUSERS EWOULDBLOCK EXDEV
1606 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
1616 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
1626 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
1636 LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
1656 SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
1657 SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
1658 SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
1659 SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
1670 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
1674 S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
1684 EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
1694 BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
1704 CLK_TCK CLOCKS_PER_SEC
1714 R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STRERR_FILENO W_OK X_OK
1728 WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
1734 This document generated by ./mkposixman.PL version 19960129.