|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : août 2011 Messages : 6 ![]() |
Bonjour,
Je souhaite executer un processus tournant en continu (boucle quasi infinie) jusqu'à ce que le signal SIGINT soit recu par mon processus. Cependant, Lorsque SIGINT est capturé par mon process, je souhaite uniquement modifier une variable permettant de quitter ma boucle infinie et revenir à ma fonction main. Pour l'instant, tous mes essais ont été infructueux, je ne retourne pas dans ma fonction main. J'illustre ma description ci-dessous: Code :
Je sais que j'aurai la possibilité d'éxécuter fonction2 dans mon handler FermeturePrecipitee, mais je ne souhaite pas le faire ainsi. L'objectif final est de transformer le signal d'interruption par un nouveau signal que j'aurai défini moi même, lequel sera généré par un autre process. Quelqu'un aurait une idée sur le déroulement des différents appels et comment faire pour modifier ma variable IsRunning dans mon handler puis revenir à mion main ? Merci de votre aide Nicolae |
||
|
|
10
|
|
|
#2 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Est-ce que tu es sûr que fonction1() se termine ? autrement dit, est-ce que tu es sûr que tu parcours plus d'une fois ta boucle while ?
Tu devrais tester la valeur de retour de signal() pour détecter les cas d'erreur. Ton programme n'est pas multi-threadé par hasard ? |
|
|
10
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2011 Messages : 6 ![]() |
Merci pour ton intervention, mais je viens de voir ce qu'il se passait !!!
En fait, dans mon programme, je lisais le port série. Dans mon handler je fermais le port Série. et fonction2 avit pour mission de lire les dernières données qui étaient arrivées sur le port avant que je le ferme. Sauf que je l'avais déjà fermé du coup ma fonction read ne retournait jamais. et la commande Ctrl-C ne me permettait pas de reprendre la main sur le shell ... C'etait une erreur d'algo. Je classe le post en resolu ! Nicolas |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com