j'ai donc réalisé ceci à l'aide de mes cours et de la doc sur internet. Cela marche sans problème.
- Code: Tout sélectionner
#include
#include
#include
int i=0;
void traitementSignal(int s)
{
if(i!=5)
{
i++;
signal(2,&traitementSignal);
printf("Signal %d reçu\n",i);
}
}
int main()
{
signal(2,&traitementSignal);
while(1);
return 0;
}
Toutefois j'ai lu qu'il ne fallait pas utiliser signal() mais plutôt sigaction. Quelquun pourrait il m'en donner la raison ?
J'ai voulu toutefois essayé, malheureusement windows ne semble pas connaître la structure et je ne peux pas tester mon code dans l'immédiat.
le main devient
- Code: Tout sélectionner
int main()
{
struct sigaction s;
s.sa_handler=traitementSignal;
sigemptyset(&s.sa_mask);
s.sa_flags=0;
sigaction(2,&s,NULL);
while(1);
return 0;
}
Pouvez vous me dire si cela est correct ?
Je pourrais tester bien entendu, mais pas avant jeudi et j'aurais apprécié avoir la réponse avant^^
*Maudit soit la batterie de mon linux qui m'a lâché
