Utilisation de signaux en C
Fermé
Scipion
-
25 avril 2010 à 15:50
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 avril 2010 à 13:47
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 26 avril 2010 à 13:47
A voir également:
- Utilisation de signaux en C
- Notice d'utilisation - Guide
- Utilisation chromecast - Guide
- Problème de réception tv pas de signal aujourd' hui - Guide
- Impossible d'utiliser ce numéro de téléphone pour la validation. - Forum Gmail
- Fransat pas de signal ✓ - Forum TNT / Satellite / Réception
5 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
25 avril 2010 à 16:19
25 avril 2010 à 16:19
Bonjour,
Voici un exemple :
J'ai juste repris la structure de ton code et rajouté quelques trucs.
Cdlt,
Voici un exemple :
#include <stdio.h> #include <unistd.h> #include <signal.h> int i; void display(int sig) { printf("%d\n",i); i++; alarm(1); } int main(void) { signal(SIGALRM, display); alarm(1); while(1); return 0; }
J'ai juste repris la structure de ton code et rajouté quelques trucs.
Cdlt,
Je viens de tester en effet cela marche. Cependant est-ce que alarm(1) signifie que toutes les secondes il y aura un signal envoyé ? et signal(SIGALRM, display);
définit que la fonction display reçoit les signaux ?
définit que la fonction display reçoit les signaux ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
25 avril 2010 à 17:04
25 avril 2010 à 17:04
En partie.
Pour être plus précis, je dirais que alarm(1) enverra un signal SIGALRM au bout d'une seconde.
Et signal(SIGALRM, display) précise que display (handler) sera le gestionnaire pour le signal SIGALRM.
Sinon il y a des façons plus portables. Mais en tout cas, voilà un programme fonctionnel ;-))).
Pour être plus précis, je dirais que alarm(1) enverra un signal SIGALRM au bout d'une seconde.
Et signal(SIGALRM, display) précise que display (handler) sera le gestionnaire pour le signal SIGALRM.
Sinon il y a des façons plus portables. Mais en tout cas, voilà un programme fonctionnel ;-))).
En réalité ce qui m'échappe est pq est-on obligé (sinon ça ne marche pas) de remettre le alarm(1) dans le display ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
26 avril 2010 à 13:47
26 avril 2010 à 13:47
Alarm(1) envoit un signal SIGALRM au bout dune seconde. Une fois cette seconde écoulée le handler sera appelé mais aucune notion de récurrence. Dis autrement une fois le signal envoyé il n'y aura plus dalarme. Il faut donc la rappeler.