Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
stdin, stdout, stderr - Flux d'entrees-sorties standard
SYNOPSIS
#include <stdio.h>
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
DESCRIPTION
Normalement, tout programme Unix demarre avec trois flux deja ouverts,
l'un pour l'entree des donnees, un autre pour la sortie des donnees, et
un troisieme pour l'affichage des messages de diagnostic ou d'erreur.
Ces trois flux sont typiquement attaches au terminal de l'utilisateur
(consultez tty(4)), mais peuvent egalement etre rediriges vers des
fichiers ou vers d'autres peripheriques suivant les choix du processus
parent (voir le paragraphe << Redirection >> dans sh(1)).
Le flux d'entree est appele << entree standard >> (standard input), le
flux de sortie << sortie standard >> (standard output), et le flux
d'erreur est souvent appele << erreur standard >> (standard error). Ces
noms sont abreges dans les denominations symboliques de ces fichiers :
stdin, stdout et stderr.
Chacun de ces symboles est une macro de stdio(3) de type pointeur sur
un FILE, et peut etre utilise dans des fonctions comme fprintf(3) ou
fread(3).
Comme les FILE sont simplement des coquilles entourant les descripteurs
de fichiers en ajoutant une memoire tampon, il est egalement possible
d'acceder aux fichiers Unix << bruts >>, avec des fonctions comme
read(2) et lseek(2).
Au demarrage du programme, les descripteurs de fichier associes aux
flux stdin, stdout et stderr valent respectivement 0, 1 et 2. Les
constantes symboliques STDIN_FILENO, STDOUT_FILENO, et STDERR_FILENO
sont definies avec ces valeurs dans <unistd.h> (appliquer freopen(3)
sur l'un de ces flux peut modifier le numero de descripteur de fichier
associe au flux).
Notez que l'utilisation conjointe des FILE et des descripteurs bruts
risque de produire des resultats inattendus, et doit etre generalement
evitee. Pour les plus masochistes d'entre-vous, POSIX.1 decrit en
detail, dans son paragraphe 8.2.3, comment ces interactions sont
censees fonctionner. Une regle generale est que les descripteurs de
fichier sont manipules par le noyau, alors que stdio est simplement une
bibliotheque. Ceci signifie par exemple qu'apres un exec(3), le
processus fils herite de tous les descripteurs de fichier ouverts, mais
que les flux deviennent inaccessibles.
Les symboles stdin, stdout et stderr etant definis comme des macros, il
est interdit de leur assigner une valeur. On peut utiliser la fonction
de bibliotheque freopen(3), specialement concue pour reassigner stdin,
stdout et stderr. Les flux standard sont fermes lors d'un appel a
exit(3) ou lors d'une fin normale de programme.
CONFORMIT'E
Les macros stdin, stdout et stderr sont conformes au standard C89, et
celui-ci stipule egalement que ces trois flux doivent etre ouverts au
demarrage du programme.
NOTES
Le flux stderr n'a pas de tampon. Le flux stdout a un tampon de ligne
lorsqu'il est dirige vers un terminal. Les lignes partielles
n'apparaitront pas avant que fflush(3) ou exit(3) ne soient invoquees,
ou qu'un retour-chariot soit ecrit. Ceci a parfois des effets
inattendus, principalement lors du debogage des programmes. La gestion
des tampons des flux standard (et des autres flux egalement) peut etre
modifiee en utilisant setbuf(3) ou setvbuf(3). Remarquez que dans le
cas ou stdin est associee a un terminal, il peut egalement y avoir un
tampon d'entree dans le pilote de terminal, sans aucune relation avec
le tampon de stdio (en effet, normalement, la saisie depuis un terminal
est geree avec un tampon de ligne dans le noyau). Cette gestion par le
noyau peut etre configuree en utilisant des appels systeme comme
tcsetattr(3). Consultez egalement stty(1) et termios(3).
VOIR AUSSI
csh(1), sh(1), open(2), fopen(3), stdio(3)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Nicolas
Francois et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.