summaryrefslogtreecommitdiffstats
path: root/man3/exit.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/exit.3')
-rw-r--r--man3/exit.396
1 files changed, 96 insertions, 0 deletions
diff --git a/man3/exit.3 b/man3/exit.3
new file mode 100644
index 000000000..1d5e0dec4
--- /dev/null
+++ b/man3/exit.3
@@ -0,0 +1,96 @@
+.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.TH EXIT 3 2001-11-17 "" "Linux Programmer's Manual"
+.SH NAME
+exit \- cause normal program termination
+.SH SYNOPSIS
+.nf
+.B #include <stdlib.h>
+.sp
+.BI "void exit(int " status );
+.fi
+.SH DESCRIPTION
+The \fBexit()\fP function causes normal program termination and the
+the value of \fIstatus & 0377\fP is returned to the parent
+(see
+.BR wait (2)).
+All functions registered with \fBatexit()\fP and \fBon_exit()\fP
+are called in the reverse order of their registration,
+and all open streams are flushed and closed.
+Files created by \fItmpfile()\fP are removed.
+.LP
+The C standard specifies two defines \fIEXIT_SUCCESS\fP and \fIEXIT_FAILURE\fP
+that may be passed to \fBexit()\fP to indicate successful or unsuccessful
+termination, respectively.
+.SH "RETURN VALUE"
+The \fBexit()\fP function does not return.
+.SH "CONFORMING TO"
+SVID 3, POSIX, BSD 4.3, ISO 9899 (``ANSI C'')
+.SH NOTES
+During the exit processing, it is possible to register additional
+functions with \fBatexit()\fP and \fBon_exit()\fP.
+Always the last-registered function is removed from the chain
+of registered functions, and invoked.
+It is undefined what happens if during this processing
+either \fBexit()\fP or \fBlongjmp()\fP is called.
+.LP
+The use of EXIT_SUCCESS and EXIT_FAILURE is slightly more portable
+(to non-Unix environments) than that of 0 and some nonzero value
+like 1 or \-1. In particular, VMS uses a different convention.
+.LP
+BSD has attempted to standardize exit codes - see the file
+.IR <sysexits.h> .
+.LP
+After \fBexit()\fP, the exit status must be transmitted to the
+parent process. There are three cases. If the parent has set
+SA_NOCLDWAIT, or has set the SIGCHLD handler to SIG_IGN, the
+status is discarded. If the parent was waiting on the child
+it is notified of the exit status. In both cases the exiting
+process dies immediately. If the parent has not indicated that
+it is not interested in the exit status, but is not waiting,
+the exiting process turns into a "zombie" process
+(which is nothing but a container for the single byte representing
+the exit status) so that the parent can learn the exit status when
+it later calls one of the \fIwait()\fP functions.
+.LP
+If the implementation supports the SIGCHLD signal, this signal
+is sent to the parent. If the parent has set SA_NOCLDWAIT,
+it is undefined whether a SIGCHLD signal is sent.
+.LP
+If the process is a session leader and its controlling terminal
+the controlling terminal of the session, then each process in
+the foreground process group of this controlling terminal
+is sent a SIGHUP signal, and the terminal is disassociated
+from this session, allowing it to be acquired by a new controlling
+process.
+.LP
+If the exit of the process causes a process group to become orphaned,
+and if any member of the newly-orphaned process group is stopped,
+then a SIGHUP signal followed by a SIGCONT signal will be
+sent to each process in this process group.
+.SH "SEE ALSO"
+.BR _exit (2),
+.BR wait (2),
+.BR atexit (3),
+.BR on_exit (3),
+.BR tmpfile (3)