Comment puis-je exécuter une commande lorsque l'utilisateur appuie sur une touche dans une application de ligne de commande C? Est-il possible lorsque la fenêtre ne se concentre pasLigne de commande C et raccourci clavier (sous Mac OS)
0
A
Répondre
0
Cela dépend du programme lui-même, vous pouvez faire l'un de ces:
block on unbuffered getc vous obtenez les coups clés comme ils viennent et non pas quand le retour des utilisateurs succès.
créer une sorte de boucle d'événements, en utilisant select/epoll ou un cadre d'événement comme (libevent/libev) et obtenir un rappel chaque fois qu'un utilisateur frappe une touche.
utiliser une boîte à outils comme ncurses qui fournit une interface de ligne de commande pseudo-graphique et une boucle d'événements.
si les clés que vous êtes intéressant dans la capture sont des choses comme CTRL +C, vous avez besoin des gestionnaires de signaux.