Pour gérer les signaux on utilise une table de
hachage %SIG qui contient des références sur des gestionnaires
de signaux. Lorsqu'un événement se produit, le gestionnaire
correspondant est appelé avec un argument contenant le nom du signal
qui l'a déclenché.
Pour envoyer un signal a un autre processus, on utilise la fonction kill.
Le programme suivant montre l'utilisation de la table de hachage permettant
de gérer les signaux en Perl.
#!/usr/bin/perl
sub attrape {
my $nomsig= shift;
die "Quelqu'un m'a envoyé un SIG $nomsig!";
}
$SIG{INT} = \&attrape;
unless(kill 2 => $kid_pid){warn "il s'est passe qq chose!";}
|
Dans ce programme la commande shift permet de récupérer
le l'argument qui a été passé au moment de l'appelle
du gestionnaire. La fonction die permet d'envoyer une exception.
|