Presque toutes les applications que j'ai écrites ont été des interfaces graphiques d'une forme ou d'une autre - HTML/Flex/Swing - et la plupart de mes applications en ligne de commande ont été extrêmement simples, sans beaucoup d'interaction. Le plus que j'ai jamais fait est de faire un jeu Ascii simple qui fait juste une boucle d'impression/entrée, en imprimant le plateau de jeu encore et encore. Je pensais à faire quelque chose d'un peu plus complexe, et j'étais vraiment curieux de voir comment certaines des applications de ligne de commande les plus avancées comme emacs fonctionnent. Plus précisément, je n'ai aucune idée de la façon dont ils semblent pouvoir avoir une ligne de commande interactive qui répond aux pressions de touches et semble fonctionner sur un tampon dans le terminal au lieu de passer constamment par la boucle print-> read-> print. Est-ce tout simplement stdin/stdout kung fu je ne suis pas au courant ou est-ce quelque chose de complètement différent?Les applications en ligne de commande comme emacs utilisent-elles normalement stdin/stdout?
Mise à jour - Je tiens à préciser que je n'essaie pas de poser une question générale ici, peut-être que j'ai juste de la difficulté à trouver les bons mots. Fondamentalement, je ne sais pas comment je ferais fonctionner emacs en utilisant stdin/stdout. Est-ce que j'utilise un mécanisme que je ne connais pas, et si oui, quoi?
+1 Intéressé dans la réponse à cet effet. – vcsjones
@Cameron - Pourquoi? Ce n'est pas une discussion, c'est une vraie question qui a une réponse très réelle, je n'arrive pas à trouver les bons termes à utiliser dans google. –
Cela me semble un peu large, mais c'est juste mon opinion. Je ne me sens pas assez fort pour avoir voté pour fermer :) Ne vous méprenez pas; Je suis intéressé par la réponse, mais je ne sais pas si c'est plus approprié pour les «programmeurs» ou non. –