NOM

gets - Récupérer une chaîne sur l'entrée standard (OBSOLÈTE)

BIBLIOTHÈQUE

Bibliothèque C standard ( libc, -lc)

SYNOPSIS

#include <stdio.h>
[[obsolète]] 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 NULL (« \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 pas y avoir de certitude que la fonction renvoie quelque chose.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface Attribut Valeur
gets() Sécurité des threads MT-Safe
 

STANDARDS

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.

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)

TRADUCTION

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]