Comment quitter le programme à tout moment?

Comment quitter le programme à tout moment? - C - Programmation

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...

Reply

Marsh Posté le 10-04-2005 à 20:34:57   

Reply

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

Reply

Marsh Posté le 10-04-2005 à 22:47:23    

ctrl-c :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

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  :o  
une fois que tu sais t'en servir, ca te simplifie la vie  ;)

Reply

Marsh Posté le 11-04-2005 à 08:25:21    


select(), c'est bien mais c'est pas standard.


Message édité par Emmanuel Delahaye le 11-04-2005 à 08:25:37

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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 ?
Le programme tourne, et en appuyant sur echap, ça devait le quitter par exemple...


 
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  
 :pt1cable:  

Reply

Marsh Posté le 11-04-2005 à 18:32:09    

Apocalypse13 a écrit :


 
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  
 :pt1cable:  


SIGTERM est plus propre que SIGKILL

Reply

Marsh Posté le 11-04-2005 à 20:24:10    

Sve@r a écrit :

SIGTERM est plus propre que SIGKILL


 
 :p vi  :D  

Reply

Marsh Posté le 11-04-2005 à 20:37:10    

S'il a juste besoin de quitter le prog, CTRL-C doit convenir, non ?

Reply

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).

Reply

Marsh Posté le 12-04-2005 à 09:41:06   

Reply

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

Reply

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...  :D  :pt1cable:  

Reply

Marsh Posté le 12-04-2005 à 11:39:04    

Sve@r a écrit :

C'est barbare... mais efficace.
Sinon, d'un point de vue "pur signal", CTRL-C équivaut au signal "SIGINT" (2).


 
Quand je disais CTRL-C, j'aurais dû préciser qu'il valait mieux le "catcher" (man signal) pour quitter proprement.  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed