gets






gets − Récupérer une chaîne sur l’entrée standard
(OBSOLÃTE)


#include <stdio.h>

char *gets(char *s);

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

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.

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

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)

Cette page fait partie de la publication 3.70 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/.










                             ‐2‐


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 à  <perkamon−fr@traduc.org>.

     Vous pouvez toujours avoir accès à la version
anglaise de ce document en utilisant la commande
« LC_ALL=C man <section> <page_de_man> ».