Provided by: manpages-fr-dev_4.13-4_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 faire référence à des fichiers ou à 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.  Cela  signifie  par  exemple  qu'après  un exec(3), le processus enfant hérite de tous les
       descripteurs de fichier ouverts, mais que les tous les anciens 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. Cela 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 5.10 du projet man-pages Linux. Une description du projet et des
       instructions  pour  signaler  des  anomalies et la dernière version de cette page peuvent être trouvées à
       l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org> et Frédéric Hantrais <fhantrais@gmail.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Linux                                           15 septembre 2017                                       STDIN(3)