xref: /netbsd-src/lib/libc/stdlib/atexit.3 (revision afd815359c614fd734638ace50b8243a9fdab9c2)
1*afd81535Swiz.\"	$NetBSD: atexit.3,v 1.11 2013/04/26 19:37:04 wiz Exp $
26dda330eSthorpej.\"
35f8a6c06Sperry.\" Copyright (c) 1990, 1991, 1993
45f8a6c06Sperry.\"	The Regents of the University of California.  All rights reserved.
561f28255Scgd.\"
661f28255Scgd.\" This code is derived from software contributed to Berkeley by
761f28255Scgd.\" Chris Torek and the American National Standards Committee X3,
861f28255Scgd.\" on Information Processing Systems.
961f28255Scgd.\"
1061f28255Scgd.\" Redistribution and use in source and binary forms, with or without
1161f28255Scgd.\" modification, are permitted provided that the following conditions
1261f28255Scgd.\" are met:
1361f28255Scgd.\" 1. Redistributions of source code must retain the above copyright
1461f28255Scgd.\"    notice, this list of conditions and the following disclaimer.
1561f28255Scgd.\" 2. Redistributions in binary form must reproduce the above copyright
1661f28255Scgd.\"    notice, this list of conditions and the following disclaimer in the
1761f28255Scgd.\"    documentation and/or other materials provided with the distribution.
18eb7c1594Sagc.\" 3. Neither the name of the University nor the names of its contributors
1961f28255Scgd.\"    may be used to endorse or promote products derived from this software
2061f28255Scgd.\"    without specific prior written permission.
2161f28255Scgd.\"
2261f28255Scgd.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2361f28255Scgd.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2461f28255Scgd.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2561f28255Scgd.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2661f28255Scgd.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2761f28255Scgd.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2861f28255Scgd.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2961f28255Scgd.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3061f28255Scgd.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3161f28255Scgd.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3261f28255Scgd.\" SUCH DAMAGE.
3361f28255Scgd.\"
345f8a6c06Sperry.\"     from: @(#)atexit.3	8.1 (Berkeley) 6/4/93
3561f28255Scgd.\"
365f8a6c06Sperry.Dd June 4, 1993
3761f28255Scgd.Dt ATEXIT 3
3861f28255Scgd.Os
3961f28255Scgd.Sh NAME
4061f28255Scgd.Nm atexit
4161f28255Scgd.Nd register a function to be called on exit
42312aca53Sperry.Sh LIBRARY
43312aca53Sperry.Lb libc
4461f28255Scgd.Sh SYNOPSIS
45472351e1Swiz.In stdlib.h
4661f28255Scgd.Ft int
4761f28255Scgd.Fn atexit "void (*function)(void)"
4861f28255Scgd.Sh DESCRIPTION
4961f28255ScgdThe
5061f28255Scgd.Fn atexit
5161f28255Scgdfunction
5261f28255Scgdregisters the given
5361f28255Scgd.Ar function
5461f28255Scgdto be called at program exit, whether via
5561f28255Scgd.Xr exit 3
5661f28255Scgdor via return from the program's
5761f28255Scgd.Em main .
5861f28255ScgdFunctions so registered are called in reverse order;
5961f28255Scgdno arguments are passed.
6061f28255ScgdAt least 32 functions can always be registered,
6161f28255Scgdand more are allowed as long as sufficient memory can be allocated.
6261f28255Scgd.Sh RETURN VALUES
6361f28255Scgd.Rv -std atexit
6461f28255Scgd.Sh ERRORS
65a66bb899Sjtc.Bl -tag -width Er
6661f28255Scgd.It Bq Er ENOMEM
6761f28255ScgdNo memory was available to add the function to the list.
6861f28255ScgdThe existing list of functions is unmodified.
6961f28255Scgd.El
7061f28255Scgd.Sh SEE ALSO
71*afd81535Swiz.Xr at_quick_exit 3 ,
72*afd81535Swiz.Xr exit 3 ,
73f5c1f214Schristos.Xr quick_exit 3
7461f28255Scgd.Sh STANDARDS
7561f28255ScgdThe
7661f28255Scgd.Fn atexit
7761f28255Scgdfunction
7861f28255Scgdconforms to
7961f28255Scgd.St -ansiC .
80