STDIO(3)           Manuel du programmeur Linux           STDIO(3)


NOM
       stdio  - Bibliothèque standard de fonctions d'entrées/sor­
       ties.

SYNOPSIS
       #include <stdio.h>

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

DESCRIPTION
       Cette bibliothéque standard fournit une  interface  simple
       et  efficace  pour  les  entrées/sorties avec buffers. Les
       entrées et les sorties sont projetées  dans  des  flux  de
       données logiques, et les caractéristiques des entrées/sor­
       ties physiques sont masquées. Les fonctions et les  macros
       sont  présentées  rapidement  ci-dessous. Des informations
       supplémentaires  sont  disponibles  dans  leurs  pages  de
       manuel individuelles.

       Un  flux  est  associé  avec  un fichier externe (qui peut
       aussi être un dispositif physique) en ouvrant  un  fichier
       (ceci peut impliquer la création d'un nouveau fichier). La
       création d'un fichier déjà  existant  efface  son  contenu
       précédent.  Si  un  fichier supporte les demandes de posi­
       tionnement (par exemple un fichier sur disque,  contraire­
       ment  à  un  terminal),  alors l'indicateur de position du
       fichier associé au flux est  placé  au  début  du  fichier
       (octet  zéro),  à moins que le fichier soit ouvert en mode
       d'ajout. Si le mode d'ajout est utilisé,  l'indicateur  de
       position  est  placé à la fin du fichier.  L'indicateur de
       position est mis à jour après chaque lecture, écriture, ou
       repositionnement. Toutes les entrées se déroulent comme si
       les caractères étaient lus par des appels successifs à  la
       fonction  fgetc(3).   Toutes les sorties ont lieu comme si
       les caractères étaient envoyés à des appels  successifs  à
       la fonction fputc(3).

       Un  fichier  est dissocié d'un flux en fermant le fichier.
       Les flux de sortie sont vidés (flush) avant  que  le  flux
       soit dissocié du fichier. Ceci signifie que le contenu des
       buffers pas encore écrits est  transféré  dans  l'environ­
       nement  de  l'hôte.   La valeur d'un pointeur sur un objet
       FILE (fichier)  est  indéfinie  après  la  fermeture  d'un
       fichier.

       Un  fichier  peut être réouvert plus tard par le même pro­
       gramme ou par un autre, et son contenu relu ou modifié (si
       l'on peut placer l'indicateur de positionnement au début).
       Si la fonction main se termine, ou si la fonction  exit(3)
       est  invoquée,  tous  les  fichiers  sont fermés (tous les
       buffers de sortie sont transférés par fflush) avant la fin
       du  programe.  Les autres méthodes d'abandon du programme,



BSD                       28 Avril 1998                         1





STDIO(3)           Manuel du programmeur Linux           STDIO(3)


       telles que abort(3) ou _exit(2) ne s'occupent pas de  fer­
       mer proprement les fichiers.

       Au  démarrage  du  programme,  trois  flux  de  texte sont
       prédéfinis et n'ont pas besoin d'être  ouverts  explicite­
       ment :

       l'entrée standard (pour la lecture des données),

       la sortie standard (pour l'écriture des données), et

       le  flux  d'erreur standard (pour les messages de diagnos­
       tique).

       Ces flux sont nommés stdin,stdout et stderr.   A  l'ouver­
       ture,  le  flux d'erreur n'a pas de buffer, l'entrée stan­
       dard et la sortie standard ont des buffers complets si  et
       seulement  si  ils  ne  se  réfèrent pas à un périphérique
       interactif.

       Les flux de sortie qui s'adressent à un peripherique  ter­
       minal  disposent toujours d'un buffer de ligne par défaut.
       Les caractères sont conservés dans le  buffer  jusqu'à  un
       saut  de ligne, ou jusqu'à ce qu'une lecture soit demandée
       sur un flux associé au même terminal. Il peut être  néces­
       saire  de  déclencher intentionnellement l'écriture effec­
       tive sur le terminal en invoquant fflush(3).

       La bibliothèque standard stdio  fait  partie  de  la  bib­
       liothèque  libc et ses routines sont chargées automatique­
       ment par les compilateurs cc(1) et pc(1)  si  besoin  est.
       Les sections SYNOPSIS des pages de manuel mentionnées plus
       bas indiquent les fichiers d'en-tête nécessaires, l'allure
       des  déclarations  de fonctions, et les variables externes
       utiles.

       Les noms ci-dessous correspondent à des macros. On ne peut
       pas   les   réutiliser   sans  supprimer  leur  définition
       précédente  avec  #undef:   BUFSIZ,   EOF,   FILENAME_MAX,
       FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam, NULL, SEEK_END,
       SEEK_SET,  SEE_CUR,  TMP_MAX,  clearerr,   feof,   ferror,
       fileno,  fropen,  fwopen,  getc,  getchar,  putc, putchar,
       stderr, stdin, stdout.  Il  existe  des  définitions  sous
       forme  de  fonctions  des  macros  feof, ferror, clearerr,
       fileno,  getc,  getchar,  putc,  et  putchar  qui   seront
       utilisées  si  la definition de la macro est explicitement
       supprimée.

VOIR AUSSI
       open(2), close(2), read(2), write(2), stdout(3)

BUGS
       Les fonctions standards avec buffer  n'interragissent  pas
       très bien avec certaines autres bibliothèques et fonctions



BSD                       28 Avril 1998                         2





STDIO(3)           Manuel du programmeur Linux           STDIO(3)


       système,  particulierement  vfork  et  abort.   Ce   n'est
       peut-être pas le cas sous Linux.

STANDARDS
       La  bibliothèque  stdio  est  conforme  à ANSI C3.159-1989
       (``ANSI C'').

LISTE DES FONCTIONS
       Fonction
              Description

       clearerr
              vérifie et réinitialise le statut d'un flux.

       fclose ferme un flux.

       fdopen fonction d'ouverture d'un flux.

       feof   vérifie et réinitialise le statut d'un flux.

       ferror vérifie et réinitialise le statut d'un flux.

       fflush transfère les buffers d'un flux.

       fgetc  lit le caractère ou le mot suivant depuis  un  flux
              d'entrée.

       fgetline
              lit une ligne depuis un flux d'entrée.

       fgetpos
              lit la position courante d'un flux.

       fgets  lit une ligne depuis un flux d'entrée.

       fileno vérifie et réinitialise le statut d'un flux.

       fopen  fonction d'ouverture d'un flux.

       fprintf
              écriture de données formatées.

       fpurge transfère les buffers d'un flux.

       fputc  écriture d'un caractère ou d'un mot dans un flux.

       fputs  écriture d'une ligne dans un flux.

       fread  entrées/sorties binaires.

       freopen
              fonction d'ouverture d'un flux.

       fropen fonction d'ouverture d'un flux.



BSD                       28 Avril 1998                         3





STDIO(3)           Manuel du programmeur Linux           STDIO(3)


       fscanf lecture de données formatées.

       fseek  repositionner un flux.

       fsetpos
              repositionner un flux.

       ftell  repositionner un flux.

       fwrite entrées/sorties binaires.

       getc   lit  le  caractère ou le mot suivant depuis un flux
              d'entrée.

       getchar
              lit le caractère ou le mot suivant depuis  un  flux
              d'entrée.

       gets   lit une ligne depuis un flux d'entrée.

       getw   lit  le  caractère ou le mot suivant depuis un flux
              d'entrée.

       mktemp créer un fichier temporaire.

       perror messages d'erreur système.

       printf écriture de données formatées.

       putc   écriture d'un caractère ou d'un mot dans un flux.

       putchar
              écriture d'un caractère ou d'un mot dans un flux.

       puts   écriture d'une ligne dans un flux.

       putw   écriture d'un caractère ou d'un mot dans un flux.

       remove supprimer une entrée de répertoire.

       rewind repositionner un flux.

       scanf  lecture de données formatées.

       setbuf opérations sur les buffers.

       setbuffer
              opérations sur les buffers.

       setlinebuf
              opérations sur les buffers.

       setvbuf
              opérations sur les buffers.



BSD                       28 Avril 1998                         4





STDIO(3)           Manuel du programmeur Linux           STDIO(3)


       sprintf
              écriture de données formatées.

       sscanf lecture de données formatées.

       strerror
              messages d'erreur système.

       sys_errlist
              messages d'erreur système.

       sys_nerr
              messages d'erreur système.

       tempnam
              créer un fichier temporaire.

       tmpfile
              créer un fichier temporaire.

       tmpnam créer un fichier temporaire.

       ungetc remettre un caractère dans un flux d'entrée.

       vfprintf
              écriture de données formatées.

       vfscanf
              lecture de données formatées.

       vprintf
              écriture de données formatées.

       vscanf lecture de données formatées.

       vsprintf
              écriture de données formatées.

       vsscanf
              lecture de données formatées.


TRADUCTION
       Christophe Blaess, 1997.













BSD                       28 Avril 1998                         5