structure primitive sigaction
Bonsoir, j'aimerais vous poser une question sur le bout de code suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
struct sigaction s2;
void traitementSignal(int s)
{
if(i!=5)
{
i++;
printf("Signal %d reçu\n",i);
}else{
sigaction(SIGINT,&s2,NULL);
}
}
int main()
{
struct sigaction s;
s.sa_handler=traitementSignal;
sigemptyset(&s.sa_mask);
sigaction(SIGINT,&s,&s2);
while(1);
return 0;
} |
J'empêche donc 5 fois l'interruption du programme avant de remettre le comportement par défaut.
Mais, j'aime pas trop le fait de mettre une variable en global comme ça...dans mon cas s2.
Y aurait il un moyen de déclarer s2 dans le main afin de le passer en paramètre de traitementSignal ? Si oui comment le code va t'il changer au niveau des appels ?
Merci d'avance.