BSD_SIGNAL(3)

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

SYNOPSIS
#define _XOPEN_SOURCE
#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 arguments 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) la disposition du signal n'est pas réinitialisée lorsque le gestionnaire est invoqué ; b) la délivrance d'autres instances du signal est bloquée tant que le gestionnaire est en cours d'exécution ; c) si le gestionnaire interrompt un appel système bloquant, l'appel système est automatiquement redémarré. Une application portable ne peut pas se fier à signal(2) pour fournir ces garanties.

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

ERREURS
Les mêmes que signal(2).

CONFORMITÉ
BSD 4.2, POSIX.1-2001.

NOTES
L'utilisation de bsd_signal() devrait être évitée ; utilisez sigaction(2) à la place. Sur les systèmes Linux modernes, bsd_signal() et signal(2) sont équivalents. Mais sur des systèmes plus anciens, signal(2) fournit une sémantique de signal non fiable ; voir signal(2) pour les détails. L'utilisation de 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), feature_test_macros(7), signal(7)

TRADUCTION

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 7 novembre 2007 et révisée le 6 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 bsd_signal ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.