Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       stdin, stdout, stderr - Flux d'entrées-sorties standard

SYNOPSIS

       #include <stdio.h>

       extern FILE *stdin;
       extern FILE *stdout;
       extern FILE *stderr;

DESCRIPTION

       Normalement, tout programme UNIX démarre avec trois flux déjà ouverts, l'un pour l'entrée des données, un
       autre pour la sortie des données, et  un  troisième  pour  l'affichage  des  messages  de  diagnostic  ou
       d'erreur.  Ces trois flux sont typiquement attachés au terminal de l'utilisateur (consultez tty(4)), mais
       peuvent également être redirigés vers des fichiers ou vers d'autres périphériques suivant  les  choix  du
       processus parent (voir le paragraphe « Redirection » dans sh(1)).

       Le  flux  d'entrée est appelé « entrée standard » (standard input), le flux de sortie « sortie standard »
       (standard output), et le flux d'erreur est souvent appelé « erreur standard » (standard error). Ces  noms
       sont abrégés dans les dénominations 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 être utilisé dans
       des fonctions comme fprintf(3) ou fread(3).

       Comme les FILE sont simplement des coquilles entourant les  descripteurs  de  fichiers  en  ajoutant  une
       mémoire tampon, il est également possible d'accéder aux fichiers UNIX « bruts », avec des fonctions comme
       read(2) et lseek(2).

       Au démarrage du programme, les descripteurs de fichier associés aux flux stdin, stdout et  stderr  valent
       respectivement  0,  1 et 2. Les constantes symboliques STDIN_FILENO, STDOUT_FILENO, et STDERR_FILENO sont
       définies avec ces valeurs dans <unistd.h> (appliquer freopen(3) sur l'un de ces  flux  peut  modifier  le
       numéro de descripteur de fichier associé au flux).

       Notez  que  l'utilisation  conjointe  des FILE et des descripteurs bruts risque de produire des résultats
       inattendus, et doit être généralement évitée. Pour les plus masochistes d'entre vous, POSIX.1  décrit  en
       détail,  dans son paragraphe 8.2.3, comment ces interactions sont censées fonctionner. Une règle générale
       est que les descripteurs de fichier sont manipulés par le noyau,  alors  que  stdio  est  simplement  une
       bibliothèque.  Ceci  signifie  par  exemple  qu'après  un  exec(3),  le processus fils hérite de tous les
       descripteurs de fichier ouverts, mais que les flux deviennent inaccessibles.

       Les symboles stdin, stdout et stderr étant définis comme des macros, il est interdit de leur assigner une
       valeur.  On  peut  utiliser  la  fonction de bibliothèque freopen(3), spécialement conçue pour réassigner
       stdin, stdout et stderr. Les flux standard sont fermés lors d'un  appel  à  exit(3)  ou  lors  d'une  fin
       normale de programme.

CONFORMITÉ

       Les  macros stdin, stdout et stderr sont conformes au standard C89, et celui-ci stipule également que ces
       trois flux doivent être ouverts au démarrage du programme.

NOTES

       Le flux stderr n'a pas de tampon. Le flux stdout a un tampon  de  ligne  lorsqu'il  est  dirigé  vers  un
       terminal. Les lignes partielles n'apparaîtront pas avant que fflush(3) ou exit(3) ne soient invoquées, ou
       qu'un retour-chariot soit écrit. Ceci a parfois des effets inattendus, principalement  lors  du  débogage
       des  programmes.  La  gestion  des  tampons  des  flux  standard (et des autres flux également) peut être
       modifiée en utilisant setbuf(3) ou setvbuf(3). Remarquez que dans le cas  où  stdin  est  associée  à  un
       terminal,  il  peut également y avoir un tampon d'entrée dans le pilote de terminal, sans aucune relation
       avec le tampon de stdio (en effet, normalement, la saisie depuis un terminal est gérée avec un tampon  de
       ligne  dans  le  noyau).  Cette gestion par le noyau peut être configurée en utilisant des appels système
       comme tcsetattr(3). Consultez également 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.65 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe       Blaess       <http://www.blaess.fr/christophe/>      (1996-2003),      Alain      Portal
       <http://manpagesfr.free.fr/> (2003-2006). Nicolas François  et  l'équipe  francophone  de  traduction  de
       Debian (2006-2009).

       Veuillez  signaler  toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».