xref: /titanic_50/usr/src/man/man3c/quick_exit.3c (revision dcdfe824b3dff2df12578b936adf1daf000aa129)
1*dcdfe824SRobert Mustacchi.\"
2*dcdfe824SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3*dcdfe824SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4*dcdfe824SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5*dcdfe824SRobert Mustacchi.\" 1.0 of the CDDL.
6*dcdfe824SRobert Mustacchi.\"
7*dcdfe824SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8*dcdfe824SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9*dcdfe824SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10*dcdfe824SRobert Mustacchi.\"
11*dcdfe824SRobert Mustacchi.\"
12*dcdfe824SRobert Mustacchi.\" Copyright 2016 Joyent, Inc.
13*dcdfe824SRobert Mustacchi.\"
14*dcdfe824SRobert Mustacchi.Dd "Mar 26, 2016"
15*dcdfe824SRobert Mustacchi.Dt QUICK_EXIT 3C
16*dcdfe824SRobert Mustacchi.Os
17*dcdfe824SRobert Mustacchi.Sh NAME
18*dcdfe824SRobert Mustacchi.Nm at_quick_exit ,
19*dcdfe824SRobert Mustacchi.Nm quick_exit
20*dcdfe824SRobert Mustacchi.Nd terminate a running process with minimal teardown
21*dcdfe824SRobert Mustacchi.Sh SYNOPSIS
22*dcdfe824SRobert Mustacchi.In stdlib.h
23*dcdfe824SRobert Mustacchi.Ft int
24*dcdfe824SRobert Mustacchi.Fo at_quick_exit
25*dcdfe824SRobert Mustacchi.Fa "void (*func)(void)"
26*dcdfe824SRobert Mustacchi.Fc
27*dcdfe824SRobert Mustacchi.Ft _Noreturn void
28*dcdfe824SRobert Mustacchi.Fo quick_exit
29*dcdfe824SRobert Mustacchi.Fa "int status"
30*dcdfe824SRobert Mustacchi.Fc
31*dcdfe824SRobert Mustacchi.Sh DESCRIPTION
32*dcdfe824SRobert MustacchiThe
33*dcdfe824SRobert Mustacchi.Fn quick_exit
34*dcdfe824SRobert Mustacchiand
35*dcdfe824SRobert Mustacchi.Fn at_quick_exit
36*dcdfe824SRobert Mustacchifunctions provide a veneer around
37*dcdfe824SRobert Mustacchi.Xr _Exit 3C
38*dcdfe824SRobert Mustacchithat allows for registered functions to be called before terminating.
39*dcdfe824SRobert MustacchiLike
40*dcdfe824SRobert Mustacchi.Xr _Exit 3C ,
41*dcdfe824SRobert Mustacchistandard library termination is not done.
42*dcdfe824SRobert Mustacchi.Xr atexit 3C
43*dcdfe824SRobert Mustacchifunctions are not called and various standard termination that occurs
44*dcdfe824SRobert Mustacchiwhen calling
45*dcdfe824SRobert Mustacchi.Xr exit 3C
46*dcdfe824SRobert Mustacchimay not occur.
47*dcdfe824SRobert Mustacchi.Pp
48*dcdfe824SRobert MustacchiFunctions that are registered with
49*dcdfe824SRobert Mustacchi.Fn at_quick_exit
50*dcdfe824SRobert Mustacchiwill be called in reverse order upon calling
51*dcdfe824SRobert Mustacchi.Fn quick_exit .
52*dcdfe824SRobert MustacchiFunctions registered with
53*dcdfe824SRobert Mustacchi.Fn at_quick_exit
54*dcdfe824SRobert Mustacchiwill not be called at any other time. Functions that are registered with
55*dcdfe824SRobert Mustacchi.Fn at_quick_exit
56*dcdfe824SRobert Mustacchishould not make use of
57*dcdfe824SRobert Mustacchi.Xr longjump 3C
58*dcdfe824SRobert Mustacchiand related functions.
59*dcdfe824SRobert Mustacchi.Pp
60*dcdfe824SRobert MustacchiAfter calling all registered functions, the
61*dcdfe824SRobert Mustacchi.Fn quick_exit
62*dcdfe824SRobert Mustacchifunction will terminate the calling program and its exit status will be
63*dcdfe824SRobert Mustacchi.Fa status .
64*dcdfe824SRobert Mustacchi.Sh RETURN VALUES
65*dcdfe824SRobert MustacchiThe
66*dcdfe824SRobert Mustacchi.Fn quick_exit
67*dcdfe824SRobert Mustacchifunction does not return.
68*dcdfe824SRobert Mustacchi.Pp
69*dcdfe824SRobert MustacchiThe
70*dcdfe824SRobert Mustacchi.Fn at_quick_exit
71*dcdfe824SRobert Mustacchifunction returns
72*dcdfe824SRobert Mustacchi.Sy 0
73*dcdfe824SRobert Mustacchion success. Otherwise, a non-zero error value is returned to indicate
74*dcdfe824SRobert Mustacchifailure.
75*dcdfe824SRobert Mustacchi.Sh ERRORS
76*dcdfe824SRobert MustacchiThe
77*dcdfe824SRobert Mustacchi.Fn at_quick_exit
78*dcdfe824SRobert Mustacchifunction may fail if:
79*dcdfe824SRobert Mustacchi.Bl -tag -width Er
80*dcdfe824SRobert Mustacchi.It Er ENOMEM
81*dcdfe824SRobert MustacchiInsufficient storage space is available.
82*dcdfe824SRobert Mustacchi.El
83*dcdfe824SRobert Mustacchi.Sh INTERFACE STABILITY
84*dcdfe824SRobert Mustacchi.Sy Standard
85*dcdfe824SRobert Mustacchi.Sh MT-LEVEL
86*dcdfe824SRobert Mustacchi.Sy Safe
87*dcdfe824SRobert Mustacchi.Sh SEE ALSO
88*dcdfe824SRobert Mustacchi.Xr _Exit 3C ,
89*dcdfe824SRobert Mustacchi.Xr atexit 3C ,
90*dcdfe824SRobert Mustacchi.Xr exit 3C ,
91*dcdfe824SRobert Mustacchi.Xr attributes 5 ,
92*dcdfe824SRobert Mustacchi.Xr standards 5
93