Loading

NOM

       gets,  fgetc, fgets, getc, getchar, ungetc - Saisie de caractè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);

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

       getc() est équivalent à fgetc() sauf qu’il peut  être  implémenté  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 tampon pointé par
       s jusqu’à atteindre un retour-chariot, ou EOF, qu’il remplace par '\0'.
       Il  n’y a pas de vérification de débordement de tampon (voir la section
       BOGUES plus bas).

       fgets() lit au plus size - 1 caractères depuis stream et les place dans
       le   tampon  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 tampon. 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  garanti  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 lecture de la bibliothèque stdio.

       Pour  des  versions  de  ces fonctions ignorant les verrouillages, voir
       unlocked_stdio(3).

VALEUR RENVOYÉE

       fgetc(), getc() et  getchar()  renvoient  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 réussit, ou EOF en cas d’erreur.

CONFORMITÉ

       C89,  C99,  POSIX.1-2001.  LSB  marque  gets()  comme  étant  obsolète.
       POSIX.1-2008 supprime la spécification de gets().

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 tampon, 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() À 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(2) 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), ferror(3), fgetwc(3), fgetws(3), fopen(3), fread(3),
       fseek(3),   getline(3),  getwchar(3),  puts(3),  scanf(3),  ungetwc(3),
       unlocked_stdio(3)

COLOPHON

       Cette page fait partie de  la  publication  3.23  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

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
       francophone de traduction de Debian.

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