BSD_SIGNAL(3)

NOM
bsd_signal - Gestion des signaux avec la sémantique BSD

SYNOPSIS
#define _XOPEN_SOURCE /* Consultez feature_test_macros(7) */
#include <signal.h>

typedef void (*sighandler_t)(int);

sighandler_t bsd_signal(int signum, sighandler_t handler);

DESCRIPTION
La fonction bsd_signal() prend les mêmes paramètres et effectue la même tâche que signal(2). La différence entre les deux est que bsd_signal() garantit de fournir une sémantique de signal fiable, qui est : a) le signal n'est pas remis à sa valeur par défaut lorsque le gestionnaire de signal est appelé ; b) les autres occurrences du signal sont bloquées pendant l'exécution du gestionnaire ; c) si le gestionnaire interrompt un appel système bloquant, alors l'appel système est automatiquement redémarré. Une application portable ne peut pas se baser sur signal(2) pour fournir ces garanties.

VALEUR RENVOYÉE
La fonction bsd_signal renvoie la valeur précédente du gestionnaire de signal ou SIG_ERR lors d'une erreur.

ERREURS
Comme pour signal(2).

ATTRIBUTS

  Multithreading (voir pthreads(7))
La fonction bsd_signal() est sûre dans un contexte multithread.

CONFORMITÉ
BSD 4.2, POSIX.1-2001. POSIX.1-2008 supprime la spécification de bsd_signal() et recommande à la place l'utilisation de sigaction(2).

NOTES
L'utilisation de bsd_signal() est à éviter, utilisez sigaction(2) à la place. Sur des systèmes Linux modernes, bsd_signal() et signal(2) sont équivalents. Cependant, sur de vieux systèmes, signal(2) fournit une sémantique de signal non fiable ; consultez signal(2) pour plus de détails. Le type sighandler_t est une extension GNU ; ce type n'est défini que si la macro de test de fonctionnalités _GNU_SOURCE est définie.

VOIR AUSSI
sigaction(2), signal(2), sysv_signal(3), signal(7)

COLOPHON
Cette page fait partie de la publication 3.70 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».