summaryrefslogtreecommitdiff
path: root/pod/modpods/POSIX.pod
diff options
context:
space:
mode:
Diffstat (limited to 'pod/modpods/POSIX.pod')
-rw-r--r--pod/modpods/POSIX.pod53
1 files changed, 53 insertions, 0 deletions
diff --git a/pod/modpods/POSIX.pod b/pod/modpods/POSIX.pod
new file mode 100644
index 0000000000..30539ad36f
--- /dev/null
+++ b/pod/modpods/POSIX.pod
@@ -0,0 +1,53 @@
+=head1 NAME
+
+POSIX - Perl interface to IEEE 1003.1 namespace
+
+=head1 SYNOPSIS
+
+ use POSIX;
+ use POSIX 'strftime';
+
+=head1 DESCRIPTION
+
+The POSIX module permits you to access all (or nearly all) the standard
+POSIX 1003.1 identifiers. Things which are C<#defines> in C, like EINTR
+or O_NDELAY, are automatically exported into your namespace. All
+functions are only exported if you ask for them explicitly. Most likely
+people will prefer to use the fully-qualified function names.
+
+To get a list of all the possible identifiers available to you--and
+their semantics--you should pick up a 1003.1 spec, or look in the
+F<POSIX.pm> module.
+
+=head1 EXAMPLES
+
+ printf "EENTR is %d\n", EINTR;
+
+ POSIX::setsid(0);
+
+ $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
+ # note: that's a filedescriptor, *NOT* a filehandle
+
+=head1 NOTE
+
+The POSIX module is probably the most complex Perl module supplied with
+the standard distribution. It incorporates autoloading, namespace games,
+and dynamic loading of code that's in Perl, C, or both. It's a great
+source of wisdom.
+
+=head1 CAVEATS
+
+A few functions are not implemented because they are C specific. If you
+attempt to call these, they will print a message telling you that they
+aren't implemented because they're, supplying the Perl equivalent if one
+exists. For example, trying to access the setjmp() call will elicit the
+message "setjmp() is C-specific: use eval {} instead".
+
+Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
+are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
+For example, one vendor may not define EDEADLK, or the semantics of the
+errno values set by open(2) might not be quite right. Perl does not
+attempt to verify POSIX compliance. That means you can currently
+successfully say "use POSIX", and then later in your program you find
+that your vendor has been lax and there's no usable ICANON macro after
+all. This could be construed to be a bug.