Bonjour,
Je voulais savoir s'il était possible de récupérer le buffer clavier pour le mettre en mémoire à l'issue d'un ctrl+c et ensuite l'enregistrer dans un fichier ?
Merci.
Version imprimable
Bonjour,
Je voulais savoir s'il était possible de récupérer le buffer clavier pour le mettre en mémoire à l'issue d'un ctrl+c et ensuite l'enregistrer dans un fichier ?
Merci.
Un handler sur interrupt ou tu récupère stdin ?
Le seul problème, sans trop m'avancer, c'est que tu pourra jamais être sur que c'est bien le clavier qui est "branché" sur stdin...
Oui peut être, je demande car je n'ai aucune idée de comment faire.
Je pensais qu'il y aurait peut être une chaine définie qu'on pouvait directement utiliser mais apparemment pas
Pourrais tu s'il te plait un peu plus développer car ce que tu dis ne m'évoque rien ?
Sinon s'il y a autre chose de brancher que le clavier sur stdin ce n'est pas grave. Je sais quel format de données récupérer. Après j'applique un filtre et j'élimine ce que je ne veux pas.
En fait le but est d'utiliser la gestion des signaux grâce à la fonction signal. Il faut capturer le signal SIGTSTP (SIGSTOP ne peut être capturé)... enfin sur Linux en tous cas. Le but est en fait d'attacher une fonction à ce signal pour faire ce que tu souhaite ;)
ctrl-c, ça envoie pas SIGINT plutôt ?
1 - Y a un truc sur la faq qui montre comment vider stdin.
2 - Honnêtement, j'ai pas trop le temps de te faire un cours sur les signal, et leur primitives (presque les plus pénible du monde du c). Piste : signal / sigaction.
je tourne sous windows...
Windows c'est pas bo, mais ça change rien sur le principe, juste les primitive...
Comme je suis vraiment gentil :
Signal sur msdn...
Donc, on récapitule, tu va voir sur la faq pour comment vider le buffers clavier (boucle à base de getch, préfère _getch); puis tu met tout ça dans ta fonction d'inteeruption et tu fais comme l'exemple de msdn.
Et si tu comprend pas pourquoi ça marche, ben tu diras ce qui te bloque, et on essayera de t'expliquer.