Comment gérer un ctrl-break du signal dans une interface de ligne de commande

Avant de commencer, je tiens à préciser que ce n'est pas un outil de ligne de commande, mais une application qui accepte les commandes par l'intermédiaire de sa propre interface de ligne de commande.

Edit: je vous dois des excuses au sujet de mon explication de avant que, apparemment, je ne voulais pas faire un très bon travail en expliquant cela. Une fois de plus...

Je suis la construction d'une interface de ligne de commande de l'application qui accepte des commandes d'un utilisateur. J'ai un gestionnaire de signal d'installation pour attraper les signaux, qui définit alors un drapeau que j'ai besoin de mettre fin à l'application. Le problème, je vais avoir toutes les fonctions de la console je peux trouver sont de blocage, ce qui signifie que je ne peut pas détecter que j'ai besoin de sortir de ma console boucle de traitement jusqu'à ce que l'utilisateur appuie sur une touche (ou entrée, selon la fonction).

Est-il un moyen standard je peux le faire soit non-bloc de la console de l'interaction, ou est-il un moyen élégant de la structure du programme, de sorte que si je viens de résilier à partir du signal de fil, que tout sera traité et libéré correctement (merci de ne pas mal comprendre, je sais comment cela pourrait être fait à l'aide de verrouillage et de libérer les ressources de la signalisation fil, mais cela peut être source de confusion, donc je préfère éviter)

Espérons que cette explication prend plus de sens...

InformationsquelleAutor Miquella | 2008-10-08