[C] Terminer un programme par Ctrl-c
Résolu/Fermé
dasdqwjd
-
6 août 2008 à 19:23
dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 - 8 août 2008 à 11:10
dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 - 8 août 2008 à 11:10
Bonjour,
J'ai un programme qui tourne en boucle et j'aimerais pouvoir le stopper avec Ctrl-C par exemple. Dans un terminal, cette combinaison me stoppe le programme mais j'ai des fonctions à faire avant de quitter (vidage de mémoire entre autre).
Si vous avez des idées, elles sont bienvenue.
Merci beaucoup !
J'ai un programme qui tourne en boucle et j'aimerais pouvoir le stopper avec Ctrl-C par exemple. Dans un terminal, cette combinaison me stoppe le programme mais j'ai des fonctions à faire avant de quitter (vidage de mémoire entre autre).
Si vous avez des idées, elles sont bienvenue.
Merci beaucoup !
A voir également:
- Signal ctrl-c
- Pas de signal tv - Guide
- Ctrl droite ✓ - Forum Logiciels
- Comment faire une capture d'écran sur pc avec ctrl ? - Guide
- Ctrl f ne fonctionne plus ✓ - Forum Windows 10
- Signal wifi - Guide
4 réponses
Toufou13190
Messages postés
10694
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
21 septembre 2015
806
6 août 2008 à 19:28
6 août 2008 à 19:28
Salut,
la solution la plus simple me semble être de rajouter une condition a ta boucle (loop while) en détectant l'appui sur une combinaison de touche et cette sortie de boucle déclenche l'exécution de tes fonctions avant d'arrêter le programme.
A+
la solution la plus simple me semble être de rajouter une condition a ta boucle (loop while) en détectant l'appui sur une combinaison de touche et cette sortie de boucle déclenche l'exécution de tes fonctions avant d'arrêter le programme.
A+
Ok merci,
n'y a t'il pas des solutions utisant des signaux ?
n'y a t'il pas des solutions utisant des signaux ?
Toufou13190
Messages postés
10694
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
21 septembre 2015
806
6 août 2008 à 19:43
6 août 2008 à 19:43
Désolé trop compliqué pour mes faibles compétences.
dubcek
Messages postés
18779
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 avril 2025
5 630
7 août 2008 à 09:39
7 août 2008 à 09:39
oui, man signal
sighandler_t signal(int signum, sighandler_t handler);
ou signum est le N° du signal, pour ctrl-c : SIGQUIT 3 Core Quit from keyboard (man signal(7))
sighandler_t signal(int signum, sighandler_t handler);
ou signum est le N° du signal, pour ctrl-c : SIGQUIT 3 Core Quit from keyboard (man signal(7))
dubcek
Messages postés
18779
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 avril 2025
5 630
>
dasdqwjd
8 août 2008 à 11:10
8 août 2008 à 11:10
SIGQUIT ou SIGINT, je ne sais plus, essayer les 2.
la fonction stop_capturing doit terminer par exit(1); après avoir fait le ménage.
la fonction stop_capturing doit terminer par exit(1); après avoir fait le ménage.