Programmation en C sur les signaux
Résolu
blackdam
Messages postés
332
Statut
Membre
-
blackdam Messages postés 332 Statut Membre -
blackdam Messages postés 332 Statut Membre -
Bonjour à tous!
Voilà j'ai un petit problème, je doit absolument écrire un programme C qui compte les signaux qu'il reçoit et affiche ces
compteurs. en cherchant un peu j'ai trouvé ce code là :
Est-ce que quelqu'un peux m'aider à comprendre le programme?? je l'execute et il me met des trucs un peu bizare...
Merci de vos réponses!!
--
Plus t'avance moins vite, moins t'avance plus vite
Voilà j'ai un petit problème, je doit absolument écrire un programme C qui compte les signaux qu'il reçoit et affiche ces
compteurs. en cherchant un peu j'ai trouvé ce code là :
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
void handler(int);
int nsig[NSIG];
int main(void)
{ int s;
for (s = 1; s < NSIG; s++)
{ if (signal(s, handler) == SIG_ERR)
fprintf(stdout, "Je ne peux pas attraper signal no %d\n", s);
nsig[s] = 0;
}
while (1) pause();
}
void handler(int s)
{ printf("Signal %d recu %d fois\n", s, ++nsig[s]);
}
Est-ce que quelqu'un peux m'aider à comprendre le programme?? je l'execute et il me met des trucs un peu bizare...
Merci de vos réponses!!
--
Plus t'avance moins vite, moins t'avance plus vite
Configuration: Linux Firefox 1.0.7
3 réponses
-
Salut
Le programme va installer un nouveau gestionnaire pour chaque signal de numéro compris entre 1 et NSIG.
On remet le tableau nsig à 0 dans tous les cas, ce qui est étrange. Ca ne serait pas plutôt :if (signal(s, handler) == SIG_ERR) { fprintf(stdout, "Je ne peux pas attraper signal no %d\n", s); nsig[s] = 0; }
Et ensuite on fait une belle boucle infinie qui ne sert à rien lol.
un simple : system("pause"); suffirait.
Bonne journée
-
Merci, donc en fait ce programme ne m'est pas d'une grande utilité en fait...
-