Flux standard

Un article de Wikipédia, l'encyclopédie libre.

En informatique, les flux standards sont des canaux pour l'entrée et la sortie de données sur les systèmes d'exploitation UNIX et assimilés. L'accès à ces flux est habituellement fourni par la bibliothèque stdio.h du langage de programmation C. Ces flux sont au nombre de trois, au travers desquels les programmes peuvent faire entrer ou sortir des informations.

Sommaire

[modifier] Entrée standard

L'entrée standard est le flux d'entrée par lequel du texte ou toute autre donnée peut être entré dans un programme. Par défaut, certains programmes utilisent l'entrée standard comme source de données si aucun fichier d'entrée n'a été spécifié.

Le descripteur de fichier de l'entrée standard est 0.

[modifier] Sortie standard

La sortie standard est le flux de sortie dans lequel les données sont écrites par le programme. Les données sont habituellement écrites à l'écran, à moins d'une redirection. Ce flux est prévu pour être le flux de sortie par défaut.

Le descripteur de fichier de la sortie standard est 1.

Une manière simple, bien que techniquement inexacte, de concevoir le principe de la sortie standard est de le considérer comme « le périphérique vers lequel le programme envoie les données ». Ainsi, si le périphérique en question est l'écran, « écrire dans la sortie standard » revient à « écrire sur l'écran » ou « afficher à l'écran ».

En réalité la sortie standard n'est qu'un « tuyau de données », que l'on branche sur un périphérique. Ce périphérique devient alors le périphérique de sortie standard.

[modifier] Erreur standard

L'erreur standard est le flux de sortie permettant aux programmes d'émettre des messages d'erreur et des diagnostics. Il s'agit d'un flux distinct de la sortie standard, qui peut être redirigé indépendamment.

Le descripteur de fichier de l'erreur standard est 2.

[modifier] Lien avec le langage C

Le fichier fichier d'en-tête <stdio.h> de la bibliothèque standard du C définit trois pointeurs qui représentent les flux standards :

  • stdin pour l'entrée standard ;
  • stdout pour la sortie standard ;
  • stderr pour l'erreur standard.

Ces pointeurs sont du type FILE* et peuvent être utilisés directement avec la majorité des opérations pour les fichiers.

Quand un programme fonctionne dans un terminal, l'entrée standard correspond au clavier, et la sortie standard ainsi que l'erreur standard sont affichées sur l'écran.

Du fait de l'omniprésence du C, en particulier pour la programmation des logiciels accompagnant de nombreux systèmes d'exploitation, et en raison de l'élégance et de l'efficacité de ce concept, ces flux standards sont présents ou émulés sur de nombreux systèmes d'exploitation, qu'ils soient des UNIX ou non.

[modifier] Voir aussi

  • Redirection (Unix) ;
  • Pipeline (Unix).