les séquences escape permettent d'assurer certaines fonctions comme
-effacer l'écran
-positionner le curseur
-mettre le texte et le fond en couleur
mais comment sauvegarder l'écran et le restaurer ?
les séquences escape permettent d'assurer certaines fonctions comme
-effacer l'écran
-positionner le curseur
-mettre le texte et le fond en couleur
mais comment sauvegarder l'écran et le restaurer ?
en utilisant des outils particulier du shell:
les redirections, cat, tail
l'historique de commande, aussi.
Mais ce n'est pas un problème du C
salut,
avec un peu de chance (...) tu as 2 variables d'environnement LINES et COLUMNS que tu peux récupérer dans ton code C, une façon de faire pourrait donc être de maintenir un tableau de LINES*COLUMNS éléments contenant les caractères et leurs attributs, en clair tu n'affiches plus directement sur l'écran, tu mets dans ton tableau d'abord, comme ça c'est "sauvegardé"
Le souci étant que dans les sessions graphiques, les consoles sont redimensionnables.
à un débutant je préfère conseiller des choses faciles, en l'occurrence tu as raison LINES et COLUMNS ne sont pas vraiment fiables, mais je préférais lui parler de ça plutôt que de l'embrouiller avec termios ou l'envoyer implicitement jouer du system("tail") disons![]()
Regardes peut-être du coté de la bibliothèque ncurses
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
En fait, la question que je me pose, c'est pourquoi vouloir rafficher un écran?
Bonjour
Les séquences d'échappement dans le cas de LINUX sont utilisées par le pilote d'écrans pour effectuer certaines actions comme par exemple l'insertion ou l'effacement de texte sur la console qui ont réalité, est rien d'autre qu'un déplacement d'une série de caractères ou bloc de caractères dans la mémoire graphique (sauf erreur de ma part). Donc, s'il vous faut sauvegarder ou restaurer les paramètres d'affichage il faut utiliser la structure essentielle présente dans les terminaux qui est struct tty_struct.
Cette structure existe dans chacun des terminaux et s'est-elle qui traite toutes les données en entrer (contient toutes le caractère saisi non lu par un programme, toutes les requêtes de lecture de caractère, les caractères d'effacement , d'interruption, d'arrêt et de relance d'affichage, effacement annulation, position actuelle etc.) et sortie (toutes les requêtes, paramètre d'écriture non terminer, information des séquences d'échappement en cours de traitement, le mode du terminal actuel etc.) .
Oui d'autant plus que termios est utilisé pour définir une voie de communication d'un terminal ce qui est différent du traitement d'affichage ou de séquence d'échappement
Très bonne question, cependant il a peut-être ces raisons. Mais s'il s'agit juste de rafraichir ou traiter de façon indépendante son affichage ou séquence perso , pourquoi ne pas opter pour la solution de @chrtophe utiliser la bibliothèque ncurses ou X-Windows ( bonne chance)
à bientôt
X-Window c'est une bibliothèque purement graphique (pour les applications non console en fenêtre), ncurses c'est la bibliothèque qui est en général utilisé dans les menus d'installation ou paramétrage depuis le terminal. Pour la gestion des séquence d'échappement saisies au clavier, tu peux aussi regarder du coté de readline.
Je sais pas comment ncurses gère ça,; je pense qu'il utilise une fenêtre (dans le sens nbre de lignes et colonnes) définie au lancement de l'application l'utilisant.Le souci étant que dans les sessions graphiques, les consoles sont redimensionnables.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Bonjour
C'est vrai en ce qui concerne X -Windows mais rien n'empêche de créer une fenêtre graphique dans lequel on a une console virtuelle et faire ce dont on a besoin un peu comme xterm un émulateur de terminal proposant une fenêtre réagissant comme un terminal. J'admets que le plus simple reste ncurse.
Cependant on ne sait pas vraiment pourquoi compte t'il rafraichit son écran ou restaurer les paramètres par défaut, surtout qu'elle est l'utilité on émet certes des hypothèses et des suggestions mais, on ne sait pas grand-chose. Sans précisions de ça part en va pas pouvoir vraiment l'aider.
Bonne remarque pour X-Windows.
à bientôt
Partager