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.\" 32*3f3ec4b9SKonstantin 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*3f3ec4b9SKonstantin BelousovCalls to the 106*3f3ec4b9SKonstantin Belousov.Fn exit 107*3f3ec4b9SKonstantin Belousovfunction are serialized. 108*3f3ec4b9SKonstantin BelousovAll functions registered by 109*3f3ec4b9SKonstantin Belousov.Xr atexit 3 110*3f3ec4b9SKonstantin Belousovare executed in the first thread that called 111*3f3ec4b9SKonstantin Belousov.Nm exit . 112*3f3ec4b9SKonstantin BelousovIf any other thread of the process calls 113*3f3ec4b9SKonstantin Belousov.Nm exit 114*3f3ec4b9SKonstantin Belousovbefore all registered functions have completed or before the process 115*3f3ec4b9SKonstantin Belousovterminates, the thread is blocked until the process terminates. 116*3f3ec4b9SKonstantin BelousovThe exit status of the process is the 117*3f3ec4b9SKonstantin Belousov.Fa status 118*3f3ec4b9SKonstantin Belousovargument of the first 119*3f3ec4b9SKonstantin Belousov.Nm exit 120*3f3ec4b9SKonstantin Belousovcall which thread proceeds the atexit handlers. 121*3f3ec4b9SKonstantin Belousov.Pp 1222c5db8c6SGarrett WollmanNote that 1232c5db8c6SGarrett Wollman.Fn exit 1242c5db8c6SGarrett Wollmandoes nothing to prevent bottomless recursion should a function registered 1252c5db8c6SGarrett Wollmanusing 1262c5db8c6SGarrett Wollman.Xr atexit 3 1272c5db8c6SGarrett Wollmanitself call 1282c5db8c6SGarrett Wollman.Fn exit . 129eca67d51SGarrett WollmanSuch functions must call 130eca67d51SGarrett Wollman.Fn _Exit 1312c5db8c6SGarrett Wollmaninstead (although this has other effects as well which may not be desired). 13258f0484fSRodney W. Grimes.Sh RETURN VALUES 13358f0484fSRodney W. GrimesThe 13458f0484fSRodney W. Grimes.Fn exit 135eca67d51SGarrett Wollmanand 136eca67d51SGarrett Wollman.Fn _Exit 137eca67d51SGarrett Wollmanfunctions 138eca67d51SGarrett Wollmannever return. 13958f0484fSRodney W. Grimes.Sh SEE ALSO 140c8d40b7dSRuslan Ermilov.Xr _exit 2 , 1414c72d794SEric van Gyzen.Xr abort2 2 , 1421c85060aSRuslan Ermilov.Xr wait 2 , 1430a31efe0SDavid Chisnall.Xr at_quick_exit 3 , 1440aee91e1SChristian Brueffer.Xr atexit 3 , 14558f0484fSRodney W. Grimes.Xr intro 3 , 1460a31efe0SDavid Chisnall.Xr quick_exit 3 , 14775141cc9SWolfram Schneider.Xr sysexits 3 , 14875141cc9SWolfram Schneider.Xr tmpfile 3 14958f0484fSRodney W. Grimes.Sh STANDARDS 15058f0484fSRodney W. GrimesThe 15158f0484fSRodney W. Grimes.Fn exit 152eca67d51SGarrett Wollmanand 153eca67d51SGarrett Wollman.Fn _Exit 154eca67d51SGarrett Wollmanfunctions conform to 155eca67d51SGarrett Wollman.St -isoC-99 . 156bbf6efd7SSergio Carlavilla Delgado.Sh HISTORY 157bbf6efd7SSergio Carlavilla DelgadoThe 158bbf6efd7SSergio Carlavilla Delgado.Fn exit 159bbf6efd7SSergio Carlavilla Delgadofunction appeared in 160bbf6efd7SSergio Carlavilla Delgado.At v1 . 161