exit.3 (103036) | exit.3 (103165) |
---|---|
1.\" Copyright (c) 1990, 1991, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" This code is derived from software contributed to Berkeley by 5.\" the American National Standards Committee X3, on Information 6.\" Processing Systems. 7.\" 8.\" Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34.\" SUCH DAMAGE. 35.\" 36.\" @(#)exit.3 8.1 (Berkeley) 6/4/93 | 1.\" Copyright (c) 1990, 1991, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" This code is derived from software contributed to Berkeley by 5.\" the American National Standards Committee X3, on Information 6.\" Processing Systems. 7.\" 8.\" Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34.\" SUCH DAMAGE. 35.\" 36.\" @(#)exit.3 8.1 (Berkeley) 6/4/93 |
37.\" $FreeBSD: head/lib/libc/stdlib/exit.3 103036 2002-09-06 19:23:28Z wollman $ | 37.\" $FreeBSD: head/lib/libc/stdlib/exit.3 103165 2002-09-10 02:04:49Z wollman $ |
38.\" | 38.\" |
39.Dd September 6, 2002 | 39.Dd September 9, 2002 |
40.Dt EXIT 3 41.Os 42.Sh NAME | 40.Dt EXIT 3 41.Os 42.Sh NAME |
43.Nm exit | 43.Nm exit , _Exit |
44.Nd perform normal program termination 45.Sh LIBRARY 46.Lb libc 47.Sh SYNOPSIS 48.In stdlib.h 49.Ft void 50.Fn exit "int status" | 44.Nd perform normal program termination 45.Sh LIBRARY 46.Lb libc 47.Sh SYNOPSIS 48.In stdlib.h 49.Ft void 50.Fn exit "int status" |
51.Ft void 52.Fn _Exit "int status" |
|
51.Sh DESCRIPTION | 53.Sh DESCRIPTION |
52.Fn Exit 53terminates a process. | 54The 55.Fn exit 56and 57.Fn _Exit 58functions terminate a process. |
54.Pp | 59.Pp |
55Before termination it performs the following functions in the 56order listed: | 60Before termination, 61.Fn exit 62performs the following functions in the order listed: |
57.Bl -enum -offset indent 58.It 59Call the functions registered with the 60.Xr atexit 3 61function, in the reverse order of their registration. 62.It 63Flush all open output streams. 64.It 65Close all open streams. 66.It 67Unlink all files created with the 68.Xr tmpfile 3 69function. 70.El 71.Pp | 63.Bl -enum -offset indent 64.It 65Call the functions registered with the 66.Xr atexit 3 67function, in the reverse order of their registration. 68.It 69Flush all open output streams. 70.It 71Close all open streams. 72.It 73Unlink all files created with the 74.Xr tmpfile 3 75function. 76.El 77.Pp |
72Passing arbitrary values back to the environment as 73.Ar status 74is considered bad style; 75you should use the values 76.Dv EXIT_SUCCESS | 78The 79.Fn _Exit 80function terminates without calling the functions registered with the 81.Xr atexit 3 82function, and may or may not perform the other actions listed. 83Both functions make the low-order eight bits of the 84.Fa status 85argument available to a parent process which has called a 86.Xr wait 2 Ns -family 87function. 88.Pp 89The C Standard 90.Pq St -isoC-99 91defines the values 92.Li 0 , 93.Dv EXIT_SUCCESS , |
77and | 94and |
78.Dv EXIT_FAILURE . 79If portability is not a concern, you may 80use the values described in 81.Xr sysexits 3 . | 95.Dv EXIT_FAILURE 96as possible values of 97.Fa status . 98Cooperating processes may use other values; 99in a program which might be called by a mail transfer agent, the 100the values described in 101.Xr sysexits 3 102may be used to provide more information to the parent process. |
82.Pp 83Note that 84.Fn exit 85does nothing to prevent bottomless recursion should a function registered 86using 87.Xr atexit 3 88itself call 89.Fn exit . | 103.Pp 104Note that 105.Fn exit 106does nothing to prevent bottomless recursion should a function registered 107using 108.Xr atexit 3 109itself call 110.Fn exit . |
90Such functions should call 91.Xr _exit 2 | 111Such functions must call 112.Fn _Exit |
92instead (although this has other effects as well which may not be desired). 93.Sh RETURN VALUES 94The 95.Fn exit | 113instead (although this has other effects as well which may not be desired). 114.Sh RETURN VALUES 115The 116.Fn exit |
96function 97never returns. | 117and 118.Fn _Exit 119functions 120never return. |
98.Sh SEE ALSO 99.Xr _exit 2 , | 121.Sh SEE ALSO 122.Xr _exit 2 , |
123.Xr wait 2 , |
|
100.Xr atexit 3 , 101.Xr intro 3 , 102.Xr sysexits 3 , 103.Xr tmpfile 3 104.Sh STANDARDS 105The 106.Fn exit | 124.Xr atexit 3 , 125.Xr intro 3 , 126.Xr sysexits 3 , 127.Xr tmpfile 3 128.Sh STANDARDS 129The 130.Fn exit |
107function 108conforms to 109.St -isoC . | 131and 132.Fn _Exit 133functions conform to 134.St -isoC-99 . |