158f0484fSRodney W. Grimes.\" Copyright (c) 1990, 1991, 1993 258f0484fSRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 358f0484fSRodney W. Grimes.\" 458f0484fSRodney W. Grimes.\" This code is derived from software contributed to Berkeley by 558f0484fSRodney W. Grimes.\" the American National Standards Committee X3, on Information 658f0484fSRodney W. Grimes.\" Processing Systems. 758f0484fSRodney W. Grimes.\" 858f0484fSRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 958f0484fSRodney W. Grimes.\" modification, are permitted provided that the following conditions 1058f0484fSRodney W. Grimes.\" are met: 1158f0484fSRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 1258f0484fSRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 1358f0484fSRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 1458f0484fSRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 1558f0484fSRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 163fb3b97cSEd Maste.\" 3. Neither the name of the University nor the names of its contributors 1758f0484fSRodney W. Grimes.\" may be used to endorse or promote products derived from this software 1858f0484fSRodney W. Grimes.\" without specific prior written permission. 1958f0484fSRodney W. Grimes.\" 2058f0484fSRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2158f0484fSRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2258f0484fSRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2358f0484fSRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2458f0484fSRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2558f0484fSRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2658f0484fSRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2758f0484fSRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2858f0484fSRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2958f0484fSRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3058f0484fSRodney W. Grimes.\" SUCH DAMAGE. 3158f0484fSRodney W. Grimes.\" 323f3ec4b9SKonstantin Belousov.Dd July 24, 2024 3358f0484fSRodney W. Grimes.Dt EXIT 3 3458f0484fSRodney W. Grimes.Os 3558f0484fSRodney W. Grimes.Sh NAME 36eca67d51SGarrett Wollman.Nm exit , _Exit 3758f0484fSRodney W. Grimes.Nd perform normal program termination 3825bb73e0SAlexey Zelkin.Sh LIBRARY 3925bb73e0SAlexey Zelkin.Lb libc 4058f0484fSRodney W. Grimes.Sh SYNOPSIS 418aefde06SJeroen Ruigrok van der Werven.In stdlib.h 4258f0484fSRodney W. Grimes.Ft void 4358f0484fSRodney W. Grimes.Fn exit "int status" 44eca67d51SGarrett Wollman.Ft void 45eca67d51SGarrett Wollman.Fn _Exit "int status" 4658f0484fSRodney W. Grimes.Sh DESCRIPTION 47eca67d51SGarrett WollmanThe 48eca67d51SGarrett Wollman.Fn exit 49eca67d51SGarrett Wollmanand 50eca67d51SGarrett Wollman.Fn _Exit 51eca67d51SGarrett Wollmanfunctions terminate a process. 5258f0484fSRodney W. Grimes.Pp 53eca67d51SGarrett WollmanBefore termination, 54eca67d51SGarrett Wollman.Fn exit 55eca67d51SGarrett Wollmanperforms the following functions in the order listed: 5658f0484fSRodney W. Grimes.Bl -enum -offset indent 5758f0484fSRodney W. Grimes.It 58ee62fb2eSKonstantin BelousovCall all functions registered with the 59ee62fb2eSKonstantin Belousov.Xr __cxa_atexit 3 60ee62fb2eSKonstantin Belousovfunction 61ee62fb2eSKonstantin Belousov(which are typically destructors from the loaded dynamic objects), 62ee62fb2eSKonstantin Belousovand the functions registered with the 6358f0484fSRodney W. Grimes.Xr atexit 3 6458f0484fSRodney W. Grimesfunction, in the reverse order of their registration. 6558f0484fSRodney W. Grimes.It 6658f0484fSRodney W. GrimesFlush all open output streams. 6758f0484fSRodney W. Grimes.It 6858f0484fSRodney W. GrimesClose all open streams. 6958f0484fSRodney W. Grimes.El 704567abc2SJoerg Wunsch.Pp 71eca67d51SGarrett WollmanThe 72eca67d51SGarrett Wollman.Fn _Exit 73eca67d51SGarrett Wollmanfunction terminates without calling the functions registered with the 74eca67d51SGarrett Wollman.Xr atexit 3 75eca67d51SGarrett Wollmanfunction, and may or may not perform the other actions listed. 76ee62fb2eSKonstantin BelousovThe 77ee62fb2eSKonstantin Belousov.Fx 78ee62fb2eSKonstantin Belousovimplementation of the 79ee62fb2eSKonstantin Belousov.Fn _Exit 80ee62fb2eSKonstantin Belousovfunction does not call destructors registered with 81ee62fb2eSKonstantin Belousov.Xr __cxa_atexit 3 , 82ee62fb2eSKonstantin Belousovdoes not flush buffers, and does not close streams. 83ee62fb2eSKonstantin Belousov.Pp 84eca67d51SGarrett WollmanBoth functions make the low-order eight bits of the 85eca67d51SGarrett Wollman.Fa status 86eca67d51SGarrett Wollmanargument available to a parent process which has called a 87eca67d51SGarrett Wollman.Xr wait 2 Ns -family 88eca67d51SGarrett Wollmanfunction. 89eca67d51SGarrett Wollman.Pp 90eca67d51SGarrett WollmanThe C Standard 91eca67d51SGarrett Wollman.Pq St -isoC-99 92eca67d51SGarrett Wollmandefines the values 93eca67d51SGarrett Wollman.Li 0 , 94eca67d51SGarrett Wollman.Dv EXIT_SUCCESS , 95cc5aedfbSTim Vanderhoekand 96eca67d51SGarrett Wollman.Dv EXIT_FAILURE 97eca67d51SGarrett Wollmanas possible values of 98eca67d51SGarrett Wollman.Fa status . 99eca67d51SGarrett WollmanCooperating processes may use other values; 100eca67d51SGarrett Wollmanin a program which might be called by a mail transfer agent, the 101959d6c24SRuslan Ermilovvalues described in 102eca67d51SGarrett Wollman.Xr sysexits 3 103eca67d51SGarrett Wollmanmay be used to provide more information to the parent process. 1042c5db8c6SGarrett Wollman.Pp 105*c4269e63SKonstantin BelousovThe complete 106*c4269e63SKonstantin Belousov.Fa status 107*c4269e63SKonstantin Belousovvalue is avaliable as 108*c4269e63SKonstantin Belousov.Va si_status 109*c4269e63SKonstantin Belousovmember of the 110*c4269e63SKonstantin Belousov.Vt siginfo_t 111*c4269e63SKonstantin Belousovstructure, to the 112*c4269e63SKonstantin Belousov.Xr wait6 2 113*c4269e63SKonstantin Belousovand 114*c4269e63SKonstantin Belousov.Xr sigwaitinfo 2 115*c4269e63SKonstantin Belousovcallers, and 116*c4269e63SKonstantin Belousov.Va SIGCHLD 117*c4269e63SKonstantin Belousovsignal handlers. 118*c4269e63SKonstantin Belousov.Pp 1193f3ec4b9SKonstantin BelousovCalls to the 1203f3ec4b9SKonstantin Belousov.Fn exit 1213f3ec4b9SKonstantin Belousovfunction are serialized. 1223f3ec4b9SKonstantin BelousovAll functions registered by 1233f3ec4b9SKonstantin Belousov.Xr atexit 3 1243f3ec4b9SKonstantin Belousovare executed in the first thread that called 1253f3ec4b9SKonstantin Belousov.Nm exit . 1263f3ec4b9SKonstantin BelousovIf any other thread of the process calls 1273f3ec4b9SKonstantin Belousov.Nm exit 1283f3ec4b9SKonstantin Belousovbefore all registered functions have completed or before the process 1293f3ec4b9SKonstantin Belousovterminates, the thread is blocked until the process terminates. 1303f3ec4b9SKonstantin BelousovThe exit status of the process is the 1313f3ec4b9SKonstantin Belousov.Fa status 1323f3ec4b9SKonstantin Belousovargument of the first 1333f3ec4b9SKonstantin Belousov.Nm exit 1343f3ec4b9SKonstantin Belousovcall which thread proceeds the atexit handlers. 1353f3ec4b9SKonstantin Belousov.Pp 1362c5db8c6SGarrett WollmanNote that 1372c5db8c6SGarrett Wollman.Fn exit 1382c5db8c6SGarrett Wollmandoes nothing to prevent bottomless recursion should a function registered 1392c5db8c6SGarrett Wollmanusing 1402c5db8c6SGarrett Wollman.Xr atexit 3 1412c5db8c6SGarrett Wollmanitself call 1422c5db8c6SGarrett Wollman.Fn exit . 143eca67d51SGarrett WollmanSuch functions must call 144eca67d51SGarrett Wollman.Fn _Exit 1452c5db8c6SGarrett Wollmaninstead (although this has other effects as well which may not be desired). 14658f0484fSRodney W. Grimes.Sh RETURN VALUES 14758f0484fSRodney W. GrimesThe 14858f0484fSRodney W. Grimes.Fn exit 149eca67d51SGarrett Wollmanand 150eca67d51SGarrett Wollman.Fn _Exit 151eca67d51SGarrett Wollmanfunctions 152eca67d51SGarrett Wollmannever return. 15358f0484fSRodney W. Grimes.Sh SEE ALSO 154c8d40b7dSRuslan Ermilov.Xr _exit 2 , 1554c72d794SEric van Gyzen.Xr abort2 2 , 1561c85060aSRuslan Ermilov.Xr wait 2 , 1570a31efe0SDavid Chisnall.Xr at_quick_exit 3 , 1580aee91e1SChristian Brueffer.Xr atexit 3 , 15958f0484fSRodney W. Grimes.Xr intro 3 , 1600a31efe0SDavid Chisnall.Xr quick_exit 3 , 16175141cc9SWolfram Schneider.Xr sysexits 3 , 16275141cc9SWolfram Schneider.Xr tmpfile 3 16358f0484fSRodney W. Grimes.Sh STANDARDS 16458f0484fSRodney W. GrimesThe 16558f0484fSRodney W. Grimes.Fn exit 166eca67d51SGarrett Wollmanand 167eca67d51SGarrett Wollman.Fn _Exit 168eca67d51SGarrett Wollmanfunctions conform to 169eca67d51SGarrett Wollman.St -isoC-99 . 170bbf6efd7SSergio Carlavilla Delgado.Sh HISTORY 171bbf6efd7SSergio Carlavilla DelgadoThe 172bbf6efd7SSergio Carlavilla Delgado.Fn exit 173bbf6efd7SSergio Carlavilla Delgadofunction appeared in 174bbf6efd7SSergio Carlavilla Delgado.At v1 . 175