on_exit(3) Library Functions Manual on_exit(3)

on_exit - Programmer une fonction à appeler à la fin normale du programme

Bibliothèque C standard (libc, -lc)

#include <stdlib.h>
int on_exit(void (*fonction)(int, void *), void *arg);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

on_exit() :

    Depuis la glibc 2.19 :
        _DEFAULT_SOURCE
    glibc 2.19 et antérieures :
        _BSD_SOURCE || _SVID_SOURCE

La fonction on_exit() enregistre la fonction à appeler à la fin normale du programme, soit par l'appel à exit(3), soit lors du retour de la fonction main() du programme. La fonction reçoit le paramètre d'état transmis au dernier appel à exit(3) et le paramètre arg transmis à on_exit().

La même fonction peut être enregistrée plusieurs fois : elle sera appelée une fois pour chaque enregistrement.

Lorsqu'un processus enfant est créé avec fork(2), il hérite d'une copie des enregistrements de son parent. À la suite d'un appel réussi à l'une des fonctions exec(3), tous les enregistrements sont supprimés.

La fonction on_exit() renvoie 0 si elle réussit ; sinon elle renvoie une valeur non nulle.

Pour une explication des termes utilisés dans cette section, consulter attributes(7).

Interface Attribut Valeur
on_exit() Sécurité des threads MT-Safe

Aucun.

SunOS 4, glibc. Supprimé dans Solaris (SunOS 5). Utiliser la fonction standard atexit(3) à la place.

Au moment où fonction est exécutée, les variables de la pile (auto) peuvent déjà être hors de portée. Ainsi, arg ne doit pas être un pointeur sur une variable de pile ; mais il peut par contre être un pointeur sur une variable du tas ou une variable globale.

_exit(2), atexit(3), exit(3)

La traduction française de cette page de manuel a été créée par Christophe Blaess https://www.blaess.fr/christophe/, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

31 octobre 2023 Pages du manuel de Linux 6.06