Section courante

A propos

Section administrative du site

%SIG

Signal
Perl

Syntaxe

$SIG{champs} = 'DEFAULT';
$SIG{champs} = 'IGNORE';
$SIG{champs} = \&handler;

Paramètres

Nom Description
'DEFAULT' Cette valeur permet d'indiquer que l'événement par défaut doit être utilisé.
'IGNORE' Cette valeur permet d'indiquer que l'événement doit être ignoré
champs Ces champs permettent d'indiquer le nom de l'événement :
Variable Description Plateforme
ABRT Ce champ permet d'indiquer un événement d'abandonné. Linux, Windows
ALRM Ce champ permet d'indiquer un événement d'alarme. Linux, Windows
BREAK Ce champ permet d'indiquer un événement de point d'arrêt. Windows
BUS Ce champ permet d'indiquer un événement «BUS». Linux
CHLD Ce champ permet d'indiquer un événement «CHLD». Linux, Windows
CLD Ce champ permet d'indiquer un événement «CLD». Linux, Windows
CONT Ce champ permet d'indiquer un événement «CONT». Linux, Windows
FPE Ce champ permet d'indiquer un événement «FPE». Linux, Windows
HUP Ce champ permet d'indiquer un événement «HUP». Linux, Windows
ILL Ce champ permet d'indiquer un événement «ILL». Linux, Windows
INT Ce champ permet d'indiquer un événement «INT». Linux, Windows
IO Ce champ permet d'indiquer un événement d'entrée/sortie. Linux
IOT Ce champ permet d'indiquer un événement «IOT». Linux
KILL Ce champ permet d'indiquer un événement de fin de processus. Linux, Windows
NUM05 Ce champ permet d'indiquer un événement «NUM05». Windows
NUM06 Ce champ permet d'indiquer un événement «NUM06». Windows
NUM07 Ce champ permet d'indiquer un événement «NUM07». Windows
NUM10 Ce champ permet d'indiquer un événement «NUM10». Windows
NUM12 Ce champ permet d'indiquer un événement «NUM12». Windows
NUM16 Ce champ permet d'indiquer un événement «NUM16». Windows
NUM17 Ce champ permet d'indiquer un événement «NUM17». Windows
NUM18 Ce champ permet d'indiquer un événement «NUM18». Windows
NUM19 Ce champ permet d'indiquer un événement «NUM19». Windows
NUM24 Ce champ permet d'indiquer un événement «NUM24». Windows
NUM32 Ce champ permet d'indiquer un événement «NUM32». Linux
NUM33 Ce champ permet d'indiquer un événement «NUM33». Linux
NUM35 Ce champ permet d'indiquer un événement «NUM35». Linux
NUM36 Ce champ permet d'indiquer un événement «NUM36». Linux
NUM37 Ce champ permet d'indiquer un événement «NUM37». Linux
NUM38 Ce champ permet d'indiquer un événement «NUM38». Linux
NUM39 Ce champ permet d'indiquer un événement «NUM39». Linux
NUM40 Ce champ permet d'indiquer un événement «NUM40». Linux
NUM41 Ce champ permet d'indiquer un événement «NUM41». Linux
NUM42 Ce champ permet d'indiquer un événement «NUM42». Linux
NUM43 Ce champ permet d'indiquer un événement «NUM43». Linux
NUM44 Ce champ permet d'indiquer un événement «NUM44». Linux
NUM45 Ce champ permet d'indiquer un événement «NUM45». Linux
NUM46 Ce champ permet d'indiquer un événement «NUM46». Linux
NUM47 Ce champ permet d'indiquer un événement «NUM47». Linux
NUM48 Ce champ permet d'indiquer un événement «NUM48». Linux
NUM49 Ce champ permet d'indiquer un événement «NUM49». Linux
NUM50 Ce champ permet d'indiquer un événement «NUM50». Linux
NUM51 Ce champ permet d'indiquer un événement «NUM51». Linux
NUM52 Ce champ permet d'indiquer un événement «NUM52». Linux
NUM53 Ce champ permet d'indiquer un événement «NUM53». Linux
NUM54 Ce champ permet d'indiquer un événement «NUM54». Linux
NUM55 Ce champ permet d'indiquer un événement «NUM55». Linux
NUM56 Ce champ permet d'indiquer un événement «NUM56». Linux
NUM57 Ce champ permet d'indiquer un événement «NUM57». Linux
NUM58 Ce champ permet d'indiquer un événement «NUM58». Linux
NUM59 Ce champ permet d'indiquer un événement «NUM59». Linux
NUM60 Ce champ permet d'indiquer un événement «NUM60». Linux
NUM61 Ce champ permet d'indiquer un événement «NUM61». Linux
NUM62 Ce champ permet d'indiquer un événement «NUM62». Linux
NUM63 Ce champ permet d'indiquer un événement «NUM63». Linux
PIPE Ce champ permet d'indiquer un événement «PIPE». Linux, Windows
POLL Ce champ permet d'indiquer un événement «POLL». Linux
PROF Ce champ permet d'indiquer un événement «PROF». Linux
PWR Ce champ permet d'indiquer un événement «PWR». Linux
QUIT Ce champ permet d'indiquer un événement «QUIT». Linux, Windows
RTMAX Ce champ permet d'indiquer un événement «RTMAX». Linux
RTMIN Ce champ permet d'indiquer un événement «RTMIN». Linux
SEGV Ce champ permet d'indiquer un événement «SEGV». Linux, Windows
STKFLT Ce champ permet d'indiquer un événement «STKFLT». Linux
STOP Ce champ permet d'indiquer un événement «STOP». Linux, Windows
SYS Ce champ permet d'indiquer un événement système. Linux
TERM Ce champ permet d'indiquer un événement «TERM». Linux, Windows
TRAP Ce champ permet d'indiquer un événement «TRAP». Linux
TSTP Ce champ permet d'indiquer un événement «TSTP». Linux
TTIN Ce champ permet d'indiquer un événement «TTIN». Linux
TTOU Ce champ permet d'indiquer un événement «TTOU». Linux
UNUSED Ce champ permet d'indiquer un événement «UNUSED». Linux
URG Ce champ permet d'indiquer un événement «URG». Linux
USR1 Ce champ permet d'indiquer un événement «USR1». Linux
USR2 Ce champ permet d'indiquer un événement «USR2». Linux
VTALRM Ce champ permet d'indiquer un événement «VTALRM». Linux
WINCH Ce champ permet d'indiquer un événement «WINCH». Linux
XCPU Ce champ permet d'indiquer un événement «XCPU». Linux
XFSZ Ce champ permet d'indiquer un événement «XFSZ». Linux
ZERO Ce champ permet d'indiquer un événement d'une division par 0. Linux
\&handler Cette valeur permet d'indiquer une fonction de traitement personnalisé associé à l'événement

Description

Cette variable associative super-globale permet de fixer ou de retourner des événements associé à un arrêt anormale de processus.

Exemple

Voici un code source Perl effectuant l'écriture d'un message d'erreur dans un fichier «test.log» si le script subit une interruption anormal:

#!/usr/bin/perl

sub error_handler {
my $signame = shift;
open ERROR, ">>test.log";
print ERROR "$signame exec $0: $!\n";
close ERROR;
}

$SIG{ABRT} = \&error_handler;
$SIG{ALRM} = \&error_handler;
$SIG{BREAK} = \&error_handler;
$SIG{CHLD} = \&error_handler;
$SIG{CLD} = \&error_handler;
$SIG{CONT} = \&error_handler;
$SIG{FPE} = \&error_handler;
$SIG{HUP} = \&error_handler;
$SIG{ILL} = \&error_handler;
$SIG{INT} = \&error_handler;
$SIG{KILL} = \&error_handler;
$SIG{NUM05} = \&error_handler;
$SIG{NUM06} = \&error_handler;
$SIG{NUM07} = \&error_handler;
$SIG{NUM10} = \&error_handler;
$SIG{NUM12} = \&error_handler;
$SIG{NUM16} = \&error_handler;
$SIG{NUM17} = \&error_handler;
$SIG{NUM18} = \&error_handler;
$SIG{NUM19} = \&error_handler;
$SIG{NUM24} = \&error_handler;
$SIG{PIPE} = \&error_handler;
$SIG{QUIT} = \&error_handler;
$SIG{SEGV} = \&error_handler;
$SIG{STOP} = \&error_handler;
$SIG{TERM} = \&error_handler;

Voici un code source Perl d'afficher la liste des signaux supporté par le système d'exploitation sous lequel Perl fonctionne actuellement :

#!/usr/bin/perl
#
# Ce script permet de sortir la liste des signaux supporté par le
# système d'exploitation sous lequel Perl fonctionne

use Config;

defined $Config{sig_name} || die "Pas de module Config?";
$i = 0;
foreach $name (split(' ', $Config{sig_name})) {
     $i++;
     printf "%3d) %s \t", $i, $name;
     if (($i % 5) == 0) { print "\n";  }
}
print "\n";


Dernière mise à jour : Dimanche, le 18 octobre 2015