Comment quitter le programme à tout moment? - C - Programmation
Marsh Posté le 10-04-2005 à 22:05:41
faut constemment vérifié dans les boucles ou dans les conditions si tu as enfoncé tel ou tel touche et géré dans ce cas la
Marsh Posté le 10-04-2005 à 22:47:23
ctrl-c
Marsh Posté le 11-04-2005 à 06:50:54
moi23372 a écrit : faut constemment vérifié dans les boucles ou dans les conditions si tu as enfoncé tel ou tel touche et géré dans ce cas la |
ou utiliser select
une fois que tu sais t'en servir, ca te simplifie la vie
Marsh Posté le 11-04-2005 à 08:25:21
select(), c'est bien mais c'est pas standard.
Marsh Posté le 11-04-2005 à 08:44:35
ares9907 a écrit : Je pense que c'est en utilisant la fonction getch(), mais je ne vois pas comment l'appui sur une touche peut etre détectée lors du déroulement du programme ? |
Je pense qu'il y a plus simple, au début du programme tu crée un processus fils (fork()), tu fais bosser le fils pendant que le père surveille les entrées clavier, et lorsque le père détecte l'appui de la touche voulue, fais-lui envoyer un signal de mort à son fils.
Pour détails syntaxiques création fils : http://www-gtr.iutv.univ-paris13.f [...] sec-3.html
Pour la syntaxe des signaux : http://eig.unige.ch/~abdennad/educ [...] s-unix.pdf (mais je pense qu'il doit y en avoir des plus simples (google... )
Je pense que c'est plus propre de faire ainsi.
Bon courage
Marsh Posté le 11-04-2005 à 18:32:09
Apocalypse13 a écrit : |
SIGTERM est plus propre que SIGKILL
Marsh Posté le 11-04-2005 à 20:37:10
S'il a juste besoin de quitter le prog, CTRL-C doit convenir, non ?
Marsh Posté le 12-04-2005 à 09:41:06
SomeBugsInMe a écrit : S'il a juste besoin de quitter le prog, CTRL-C doit convenir, non ? |
C'est barbare... mais efficace.
Sinon, d'un point de vue "pur signal", CTRL-C équivaut au signal "SIGINT" (2).
Marsh Posté le 12-04-2005 à 09:50:37
Moi je vote pour le fork avec le pere qui envois un SIGUSR au fil pour qu'il s'arrete; sinon tu redirige ctrl C
Marsh Posté le 12-04-2005 à 09:57:48
JohnMeurt a écrit : Moi je vote pour le fork avec le pere qui envois un SIGUSR au fil pour qu'il s'arrete; sinon tu redirige ctrl C |
Quel topic de tarés...
Marsh Posté le 12-04-2005 à 11:39:04
Sve@r a écrit : C'est barbare... mais efficace. |
Quand je disais CTRL-C, j'aurais dû préciser qu'il valait mieux le "catcher" (man signal) pour quitter proprement.
Marsh Posté le 10-04-2005 à 20:34:57
Je pense que c'est en utilisant la fonction getch(), mais je ne vois pas comment l'appui sur une touche peut etre détectée lors du déroulement du programme ?
Le programme tourne, et en appuyant sur echap, ça devait le quitter par exemple...