summaryrefslogtreecommitdiff
path: root/pod
diff options
context:
space:
mode:
authorSteve Peters <steve@fisharerojo.org>2006-02-06 19:43:17 +0000
committerSteve Peters <steve@fisharerojo.org>2006-02-06 19:43:17 +0000
commit1d335e36eae5d697b47f579905b11046a173e505 (patch)
tree8b94847e366435d774de42d69c918f3f38281c6b /pod
parent6d24bbf23c1c9b3b21c4a4fbce2134e3a9987348 (diff)
downloadperl-1d335e36eae5d697b47f579905b11046a173e505.tar.gz
Document the limitations of calling exit() (instead of _exit()) from
a child process on Solaris. p4raw-id: //depot/perl@27108
Diffstat (limited to 'pod')
-rw-r--r--pod/perlfork.pod9
1 files changed, 8 insertions, 1 deletions
diff --git a/pod/perlfork.pod b/pod/perlfork.pod
index 832710a80c..8f3b919e7a 100644
--- a/pod/perlfork.pod
+++ b/pod/perlfork.pod
@@ -100,7 +100,7 @@ waiting for after the exec().
exit() always exits just the executing pseudo-process, after automatically
wait()-ing for any outstanding child pseudo-processes. Note that this means
that the process as a whole will not exit unless all running pseudo-processes
-have exited.
+have exited. See below for some limitations with open filehandles.
=item Open handles to files, directories and network sockets
@@ -177,6 +177,13 @@ the seek position in the parent will change it in the child and vice-versa.
One can avoid this by opening files that need distinct seek pointers
separately in the child.
+On some operating systems, notably Solaris and Unixware, calling C<exit()>
+from a child process will flush and close open filehandles in the parent,
+thereby corrupting the filehandles. On these systems, calling C<_exit()>
+is suggested instead. C<_exit()> is available in Perl through the
+C<POSIX> module. Please consult your systems manpages for more information
+on this.
+
=item Forking pipe open() not yet implemented
The C<open(FOO, "|-")> and C<open(BAR, "-|")> constructs are not yet