IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Man page 3 : gets

GETS 3 "24 janvier 2014" GNU "Manuel du programmeur Linux"

Page d'accueil du man

Cette page de documentation est issue d'une conversion automatique de developpez.com.
Les traductions proviennent des sites Debian, Linux Kernel et du projet Perkamon.
N'hésitez pas à laisser vos suggestions, avis ou commentaires : 12 commentaires Donner une note à l´article (5).

Article lu   fois.

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

1. NOM

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

2. SYNOPSIS

 
Sélectionnez
#include <stdio.h>
char *gets(char *s);

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

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

5. CONFORMITÉ

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.

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

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

8. COLOPHON

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

9. 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 à <>.

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

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

VERBATIM
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Since the Linux kernel and libraries are constantly changing, this manual page may be incorrect or out-of-date. The author(s) assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. The author(s) may not have taken the same level of care in the production of this manual, which is licensed free of charge, as they might when working professionally. Formatted or processed versions of this manual, if unaccompanied by the source, must acknowledge the copyright and authors of this work.