La primitive atexit permet de spécifier des fonctions à appeler en fin d'exécution, elle sont lancées par exit dans l'ordre inverse de leur positionnement par atexit.
#include <stdlib.h>
int atexit(void (*fonction) (void ));
Exemple:
void bob(void) {printf("coucou\n");} void bib(void) {printf("cuicui ");} main(int argc) { atexit(bob); atexit(bib); if (argc - 1) exit(0); else _exit(0); } $ make atexit cc atexit.c -o atexit $ atexit $ atexit unargument cuicui coucou $