1f3adbb3cSSascha Wildner.\" Copyright (c) 2011 David Chisnall 2f3adbb3cSSascha Wildner.\" All rights reserved. 3f3adbb3cSSascha Wildner.\" 4f3adbb3cSSascha Wildner.\" Redistribution and use in source and binary forms, with or without 5f3adbb3cSSascha Wildner.\" modification, are permitted provided that the following conditions 6f3adbb3cSSascha Wildner.\" are met: 7f3adbb3cSSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 8f3adbb3cSSascha Wildner.\" notice, this list of conditions and the following disclaimer. 9f3adbb3cSSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 10f3adbb3cSSascha Wildner.\" notice, this list of conditions and the following disclaimer in the 11f3adbb3cSSascha Wildner.\" documentation and/or other materials provided with the distribution. 12f3adbb3cSSascha Wildner.\" 13f3adbb3cSSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14f3adbb3cSSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15f3adbb3cSSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16f3adbb3cSSascha Wildner.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17f3adbb3cSSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18f3adbb3cSSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19f3adbb3cSSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20f3adbb3cSSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21f3adbb3cSSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22f3adbb3cSSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23f3adbb3cSSascha Wildner.\" SUCH DAMAGE. 24f3adbb3cSSascha Wildner.\" 25f3adbb3cSSascha Wildner.\" $FreeBSD: src/lib/libc/stdlib/at_quick_exit.3,v 1.4 2012/07/26 12:04:11 pluknet Exp $ 26f3adbb3cSSascha Wildner.\" 27f3adbb3cSSascha Wildner.Dd August 9, 2012 28f3adbb3cSSascha Wildner.Dt AT_QUICK_EXIT 3 29f3adbb3cSSascha Wildner.Os 30f3adbb3cSSascha Wildner.Sh NAME 31f3adbb3cSSascha Wildner.Nm at_quick_exit 32f3adbb3cSSascha Wildner.Nd registers a cleanup function to run on quick exit 33f3adbb3cSSascha Wildner.Sh LIBRARY 34f3adbb3cSSascha Wildner.Lb libc 35f3adbb3cSSascha Wildner.Sh SYNOPSIS 36f3adbb3cSSascha Wildner.In stdlib.h 37f3adbb3cSSascha Wildner.Ft int 38f3adbb3cSSascha Wildner.Fn at_quick_exit "void (*func)(void)" 39f3adbb3cSSascha Wildner.Sh DESCRIPTION 40f3adbb3cSSascha WildnerThe 41f3adbb3cSSascha Wildner.Fn at_quick_exit 42f3adbb3cSSascha Wildnerfunction registers a cleanup function to be called when the program exits as a 43f3adbb3cSSascha Wildnerresult of calling 44f3adbb3cSSascha Wildner.Xr quick_exit 3 . 45f3adbb3cSSascha WildnerThe cleanup functions are called in the reverse order and will not be called if 46f3adbb3cSSascha Wildnerthe program exits by calling 47f3adbb3cSSascha Wildner.Xr exit 3 , 48f3adbb3cSSascha Wildner.Xr _Exit 3 , 49f3adbb3cSSascha Wildneror 50f3adbb3cSSascha Wildner.Xr abort 3 . 51f3adbb3cSSascha Wildner.Sh RETURN VALUES 52f3adbb3cSSascha WildnerThe 53f3adbb3cSSascha Wildner.Fn at_quick_exit 54f3adbb3cSSascha Wildnerfunction returns the value 0 if successful and a non-zero value on failure. 55*faf683e3SSascha Wildner.Sh ERRORS 56*faf683e3SSascha WildnerThe function is registered unless: 57*faf683e3SSascha Wildner.Bl -tag -width Er 58*faf683e3SSascha Wildner.It Bq Er ENOMEM 59*faf683e3SSascha WildnerAn allocation to register the function failed. 60*faf683e3SSascha Wildner.El 61f3adbb3cSSascha Wildner.Sh SEE ALSO 62f3adbb3cSSascha Wildner.Xr exit 3 , 63f3adbb3cSSascha Wildner.Xr quick_exit 3 64f3adbb3cSSascha Wildner.Sh STANDARDS 65f3adbb3cSSascha WildnerThe 66f3adbb3cSSascha Wildner.Fn at_quick_exit 67f3adbb3cSSascha Wildnerfunction conforms to 68f3adbb3cSSascha Wildner.St -isoC-2011 . 69