Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
GETS
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- VALEUR RENVOYÉE
- CONFORMITÉ À
- BOGUES
- VOIR AUSSI
- TRADUCTION
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);
DESCRIPTION
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
' '. 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 ' ' 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 les 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. LSB rend obsolète 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() 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)
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.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».
|