Imprimer la page  fgets     Pour fermer la fenêtre  Cliquez ici

 
         



NOM
       gets, fgetc, fgets, getc, getchar, ungetc - Saisie de car­
       actères et de chaînes.

SYNOPSIS
       #include <stdio.h>

       int fgetc (FILE *stream);
       char *fgets (char *s, int size, FILE *stream);
       int getc (FILE *stream);
       int getchar (void);
       char *gets (char *s);
       int ungetc (int c, FILE *stream);

DESCRIPTION
       fgetc() lit le caractère suivant depuis le flux stream  et
       renvoie  ce  caractère,  lu sous forme unsigned char, puis
       transformé en int, ou EOF en cas d'erreur  ou  de  fin  de
       fichier.

       getc()  est  équivalent  à  fgetc()  sauf  qu'il peut être
       implementé sous forme  de  macro,  qui  évalue  l'argument
       stream plusieurs fois.

       getchar() est équivalent à getc(stdin).

       gets()  lit  une  ligne  depuis  stdin et la place dans le
       buffer pointé par s jusqu'à atteindre  un  retour-chariot,
       ou  EOF, qu'il remplace par '\0'.  Il n'y a pas de vérifi­
       cation de débordement de buffer (voir plus bas la  section
       BOGUES).

       fgets()  lit  au plus size - 1 caractères depuis stream et
       les place  dans  le  buffer  pointé  par  s.   La  lecture
       s'arrête  après  EOF  ou  un retour-chariot. Si un retour-
       chariot (newline) est lu, il est placé dans le buffer.  Un
       caractère nul '\0' est placé à la fin de la ligne.

       ungetc() replace le caractère c dans le flux stream, en le
       transformant en unsigned char, où il sera disponible  pour
       une  lecture  ultérieure.   Les caractères replacés seront
       renvoyés en ordre inverse.  Le fonctionnement n'est garan­
       tit que pour le replacement d'un seul caractère.

       Les  fonctions  décrites  ci-dessus peuvent être utilisées
       conjointement, ainsi qu'avec les autres fonctions de  lec­
       ture de la bibliothèque stdio.

VALEUR RENVOYÉE
       fgetc(),  getc()  et  getchar()  renvoie  un caractère, lu
       comme un unsigned char, et transformé en int, ou EOF à  la
       fin du fichier, ou en cas d'erreur.

       gets()  et  fgets()  renvoient  le  pointeur  s  si  elles
       réussissent, et NULL en cas d'erreur,  ou  si  la  fin  de
       fichier  est  atteinte  avant  d'avoir pu lire au moins un
       caractère.

       ungetc() renvoie c s'il reussit, ou EOF en cas d'erreur.

CONFORMITÉ
       ANSI - C, POSIX.1

BOGUES
       N'utilisez jamais gets().   Comme  il  est  impossible  de
       savoir  à  l'avance  combien  de caractères seront lus par
       gets(), et comme celui-ci écrira tous les caractères  lus,
       même   s'ils  débordent  du  buffer,  cette  fonction  est
       extrèmement dangereuse à utiliser. On a  déjà  utilisé  ce
       dysfonctionnement   pour  créer  des  trous  de  sécurité.
       UTILISEZ TOUJOURS fgets() A LA PLACE DE gets().

       Il est fortement déconseillé de mélanger  les  appels  aux
       fonctions  de  lecture  de  la bibliothèque stdio avec les
       appels aux fonctions de lecture bas-niveau read()  sur  le
       descripteur de fichier associé au flux. Les résultats sont
       indéfinis, et très probablement indésirables.

VOIR AUSSI
       read(2), write(2), fopen(3), fread(3), scanf(3),  puts(3),
       fseek(3), ferror(3)

TRADUCTION
       Christophe Blaess, 1997.