bsd_signal - Gestion des signaux avec la sémantique BSD
Bibliothèque C standard (
libc,
-lc)
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t bsd_signal(int signum, sighandler_t handler);
bsd_signal() :
Depuis la glibc 2.26 :
_XOPEN_SOURCE >= 500
&& ! (_POSIX_C_SOURCE >= 200809L)
glibc 2.25 et antérieures :
_XOPEN_SOURCE
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.
La fonction
bsd_signal renvoie la valeur précédente du
gestionnaire de signal ou
SIG_ERR lors d'une erreur.
Comme pour
signal(2).
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
bsd_signal() |
Sécurité des threads |
MT-Safe |
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).
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.
sigaction(2),
signal(2),
sysv_signal(3),
signal(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Cédric Boutillier <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Jean-Pierre
Giraud <
[email protected]>
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 à
[email protected]