For faster navigation, this Iframe is preloading the Wikiwand page for Flux standard.

Flux standard

En informatique, les flux standard (standard stream en anglais) 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.

Application

[modifier | modifier le code]
Les flux standards : entrée, sortie, erreur.

Les utilisateurs connaissent généralement ces flux comme moyen par lequel un texte provenant d'un input device, et un texte s'affichant sur un afficheur sont transmis. Ils sont alors essentiellement vus comme un moyen de transmettre du texte utilisateur, une séquence de caractères dans un codage de caractères prédéterminés tel que CP850 sous DOS ou UTF-8 sous Unix.

Ces flux peuvent également servir à enchaîner des programmes ; la sortie de l'un servant alors d'entrée au suivant. Un exemple bien connu est l'utilisation d'un paginateur tel que more ou less, qui donne à l'utilisateur un moyen de contrôler quelle partie de la sortie est affichée.

Bien que le contenu usuel de ces flux soit du texte, il est techniquement possible de les utiliser pour transmettre une séquence d'octets arbitraire, associée à aucune représentation textuelle. Par exemple, le logiciel gzip peut recevoir un fichier non compressé sur son entrée et fournir un fichier compressé sur sa sortie.

Entrée standard

[modifier | modifier le code]

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.

Sortie standard

[modifier | modifier le code]

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.

Erreur standard

[modifier | modifier le code]

L'erreur standard est le flux de sortie permettant aux programmes d'émettre des messages d'erreurs 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.

Lien avec les langages de programmation

[modifier | modifier le code]

Le langage C est l'un des premiers langages à avoir formalisé les flux de cette sorte. Sous son influence et celle d'Unix, d'autres langages reprennent ce découpage en flux, dont : C++, Python, Perl, Ksh, Bash, Java.

Lien avec le langage C

[modifier | modifier le code]

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

  • 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 dans ce terminal.

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.

{{bottomLinkPreText}} {{bottomLinkText}}
Flux standard
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?