Programmation en C sur les signaux

Résolu/Fermé
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 - 13 juin 2007 à 08:26
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 - 14 juin 2007 à 15:32
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à :
#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!!
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
13 juin 2007 à 09:39
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
5
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 35
13 juin 2007 à 09:58
Merci, donc en fait ce programme ne m'est pas d'une grande utilité en fait...
3
blackdam Messages postés 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 35
14 juin 2007 à 15:32
--
Plus t'avance moins vite, moins t'avance plus vite
3