c/program/atexit

Registers the function pointed to by to be called on normal program termination (via exit or returning from ). The functions will be called in reverse order they were registered, i.e. the function registered last will be executed first.

The same function may be registered more than once.

is thread-safe: calling the function from several threads does not induce a data race.

The implementation is guaranteed to support the registration of at least functions. The exact limit is implementation-defined.

Return value
if the registration succeeds, nonzero value otherwise.