X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/1f2f436a38f7ae2d39a943ad2898d8fed4ed2e58..a28bf75d63c6a64e4c3b417c6052e45f42c6cedd:/stdlib/FreeBSD/atexit.3 diff --git a/stdlib/FreeBSD/atexit.3 b/stdlib/FreeBSD/atexit.3 index bf40c80..b3d978b 100644 --- a/stdlib/FreeBSD/atexit.3 +++ b/stdlib/FreeBSD/atexit.3 @@ -32,46 +32,69 @@ .\" @(#)atexit.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD: src/lib/libc/stdlib/atexit.3,v 1.11 2007/01/09 00:28:09 imp Exp $ .\" -.Dd September 6, 2002 +.Dd May 20, 2008 .Dt ATEXIT 3 .Os .Sh NAME .Nm atexit .Nd register a function to be called on exit -.Sh LIBRARY -.Lb libc .Sh SYNOPSIS .In stdlib.h .Ft int -.Fn atexit "void (*function)(void)" +.Fn atexit "void (*func)(void)" +#ifdef UNIFDEF_BLOCKS +.Ft int +.Fn atexit_b "void (^block)(void)" +#endif .Sh DESCRIPTION The .Fn atexit function -registers the given -.Fa function +registers the function +.Fa func to be called at program exit, whether via .Xr exit 3 or via return from the program's .Fn main . Functions so registered are called in reverse order; no arguments are passed. +#ifdef UNIFDEF_BLOCKS +.Pp +The +.Fn atexit_b +function is like +.Fn atexit +except the callback is a block pointer instead of a function pointer. +.Bd -ragged -offset indent +Note: The +.Fn Block_copy +function (defined in +.In Blocks.h ) +is used by +.Fn atexit_b +to make a copy of the block, especially for the case when a stack-based +block might go out of scope when the subroutine returns. +.Ed +#endif .Pp -These functions must not call +These callbacks must not call .Fn exit ; if it should be necessary to terminate the process while in such a function, the .Xr _exit 2 function should be used. -(Alternatively, the function may cause abnormal +(Alternatively, the callbacks may cause abnormal process termination, for example by calling .Xr abort 3 . ) .Pp -At least 32 functions can always be registered, -and more are allowed as long as sufficient memory can be allocated. +At least 32 callbacks can always be registered; +more are allowed as long as sufficient memory can be allocated. .\" XXX {ATEXIT_MAX} is not implemented yet .Sh RETURN VALUES -.Rv -std atexit +#ifdef UNIFDEF_BLOCKS +.ds ATEXIT_B atexit_b +#endif +.Rv -std atexit \*[ATEXIT_B] .Sh ERRORS .Bl -tag -width Er .It Bq Er ENOMEM