gets - Récupérer une chaîne sur l'entrée standard
(OBSOLÈTE)
Bibliothèque C standard (
libc,
-lc)
#include <stdio.h>
[[obsolète]] 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 NULL
(« \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 pas y avoir de certitude que
la fonction renvoie quelque chose.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
gets() |
Sécurité des threads |
MT-Safe |
C99, POSIX.1-2001.
LSB déconseille l'utilisation de
gets(). POSIX.1-2008 marque
gets() comme étant obsolète. ISO C11 retire la
spécification de
gets() du langage C et, depuis la
glibc 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)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Frédéric Hantrais <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]