NOM¶
gets - Récupérer une chaîne sur l'entrée standard
(OBSOLÈTE)
SYNOPSIS¶
#include <stdio.h>
char *gets(char *s);
DESCRIPTION¶
Ne jamais utiliser cette fonction.
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 un octet nul
(« \0 »). Il n'y a pas de vérification de
débordement de tampon (voir la section des
BOGUES plus bas).
VALEUR RENVOYÉE¶
gets() renvoie le pointeur
s en cas de succès et NULL en
cas d'erreur, ou si la fin de fichier est atteinte avant d'avoir pu lire au
moins un caractère. Cependant, le débordement de tampon
n'étant pas surveillé, il ne peut y avoir de certitude que la
fonction renvoie quelque chose.
C89, C99, POSIX.1-2001.
LSB déconseille l'utilisation de
gets(). POSIX.1-2008 marque
gets() comme étant obsolète. ISO C11 retire la
specification de
gets() du langage C et, depuis la version 2.16,
les fichiers d'en-tête glibc n'exposent pas la déclaration de
fonction si la macro de test de fonctionnalités
_ISOC11_SOURCE
est définie.
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().
Pour plus d'informations, consultez CWE-242 (document intitulé sous le
nom « Use of Inherently Dangerous Function »)
à l'adresse
http://cwe.mitre.org/data/definitions/242.html
VOIR AUSSI¶
read(2),
write(2),
ferror(3),
fgetc(3),
fgets(3),
fgetwc(3),
fgetws(3),
fopen(3),
fread(3),
fseek(3),
getline(3),
getwchar(3),
puts(3),
scanf(3),
ungetwc(3),
unlocked_stdio(3),
feature_test_macros(7)
COLOPHON¶
Cette page fait partie de la publication 3.65 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¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et
l'équipe francophone de traduction de Debian (2006-2009).
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> ».