GETS(3)            Manuel du programmeur Linux            GETS(3)


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
       BUGS).

       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



GNU                      11 Décembre 1997                       1





GETS(3)            Manuel du programmeur Linux            GETS(3)


       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

BUGS
       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.



























GNU                      11 Décembre 1997                       2