Partager via


Méthodes d’entrée et de sortie

Il existe deux approches différentes des E/S de console, dont le choix dépend de la flexibilité et du contrôle dont l'application a besoin. L’approche générale permet des E/S de flux de caractères simples, mais elle limite l’accès aux mémoires tampons d’entrée et d’écran d’une console. L'approche de bas niveau exige des développeurs qu'ils écrivent plus de code et qu'ils choisissent parmi une plus grande plage de fonctions, mais elle offre également une plus grande flexibilité à l'application.

Remarque

L'approche de bas niveau n'est pas recommandée pour les nouveaux développements et les développements en cours. Les applications nécessitant des fonctions d'E/S de console de bas niveau sont encouragées à utiliser des séquences de terminaux virtuels et à consulter notre documentation sur les fonctions classiques et les terminaux virtuels, ainsi que la feuille de route de l'écosystème.

Une application peut utiliser les fonctions d'E/S de fichier, ReadFile et WriteFile, et les fonctions de console, ReadConsole et WriteConsole, pour les E/S de haut niveau qui fournissent un accès indirect aux mémoires tampons d'entrée et d'écran d'une console. Les fonctions d'entrée de haut niveau filtrent et traitent les données dans la mémoire tampon d’entrée d'une console pour renvoyer l'entrée sous forme de flux de caractères, en ignorant la souris et en redimensionnant la mémoire tampon d’entrée. De même, les fonctions de sortie de haut niveau écrivent un flux de caractères qui sont affichés à l'emplacement actuel du curseur dans une mémoire tampon de l'écran. Une application contrôle la manière dont ces fonctions fonctionnent en définissant les modes d’E/S d’une console.

Les fonctions d’E/S de bas niveau fournissent un accès direct aux mémoires tampons d’entrée et d’écran d’une console, ce qui permet à une application d’accéder aux événements d’entrée et de redimensionnement des mémoires tampons, ainsi qu’aux informations étendues pour les événements de clavier. Les fonctions de sortie de bas niveau permettent à une application de lire ou d’écrire dans un nombre spécifié de cellules de caractères consécutives dans une mémoire tampon d’écran, ou de lire ou d’écrire dans des blocs rectangulaires de cellules de caractères à un emplacement spécifié dans une mémoire tampon d’écran. Les modes d’entrée d’une console affectent les entrées de bas niveau en permettant à l’application de déterminer si les événements de redimensionnement de la souris et de la mémoire tampon sont placés dans la mémoire tampon d’entrée. Les modes de sortie d’une console n’ont aucun effet sur la sortie de bas niveau.

Les méthodes d’E/S de haut niveau et de bas niveau ne sont pas mutuellement exclusives et une application peut utiliser n’importe quelle combinaison de ces fonctions. Cependant, une application utilise généralement une approche ou l'autre exclusivement et nous recommandons de se concentrer sur un paradigme particulier pour obtenir des résultats optimaux.

Conseil

L'application idéale, tournée vers l'avenir, se concentrera sur les méthodes de haut niveau et complétera les besoins par des séquences de terminaux virtuels via les méthodes d'E/S de haut niveau, si nécessaire, en évitant complètement l'utilisation des fonctions d'E/S de bas niveau.

Les rubriques suivantes décrivent les modes de console et les fonctions d’E/S de haut niveau et de bas niveau.