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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problèmes avec gets


Sujet :

C

  1. #1
    Membre habitué Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Points : 128
    Points
    128
    Par défaut Problèmes avec gets
    Bonjour.
    J'entends dire un peu partout que la fonction gets a un comportement buggé.
    Je voudrais avoir quelques précisions à ce sujet.
    Merci

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: [Info] problèmes avec gets
    Citation Envoyé par al85
    J'entends dire un peu partout que la fonction gets a un comportement buggé.
    Je voudrais avoir quelques précisions à ce sujet.
    L'interface de cette fonction ne dispose pas d'information 'taille du buffer de destination'. Elle n'a donc aucun moyen de tester un éventuel débordement. N'importe quel singe qui passe par là fait exploser le buffer. (C'est le premier test que je fais quand je rec_ois un équipement avec 'ligne de commande').

    C'est la conception de gets() qui est buggée. Il est impossible de l'utiliser de façon fiable et portable.

    Ce défaut bien connu a été exploité en son temps (Google : The Great Internet Worm)
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre habitué Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Points : 128
    Points
    128
    Par défaut
    On peut donc la considérer comme une erreur de conception du C ?

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par al85
    On peut donc la considérer comme une erreur de conception du C ?
    Du langage C lui même, non, mais de la biblothèque standard (ok, elle fait partie du C), oui. Ca arrive, nul n'est parfait...
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre habitué Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Points : 128
    Points
    128
    Par défaut
    ok, merci pour ces precisions

  6. #6
    Membre régulier Avatar de kaisse
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par al85
    On peut donc la considérer comme une erreur de conception du C ?
    Du langage C lui même, non, mais de la biblothèque standard (ok, elle fait partie du C), oui. Ca arrive, nul n'est parfait...
    Dans la conception de base, effectivement. Après, elle a été conservé dans un soucis de compatibilité avec les versions antèrieures. Personellement, je l'aurais bien sortie de la norme C99 .. mai,s bon, il faut croire que beaucoup de programmes l'utilisaient pour la conserver ! (en tant que fonction dépréciée, il est vrai, mais tout de même)

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par kaisse
    <gets() ...> Après, elle a été conservé dans un soucis de compatibilité avec les versions antèrieures. Personellement, je l'aurais bien sortie de la norme C99 .. mai,s bon, il faut croire que beaucoup de programmes l'utilisaient pour la conserver ! (en tant que fonction dépréciée, il est vrai, mais tout de même)
    Il est quasient impossible de revenir en arrière sans casser des millions de lignes de code existantes. La prudence est de mise chez les responsables du langage (le comité de normalisation de l'ISO) et en principe, une ancienne pratique reste possible bien que déconseillée. Par contre, je ne crois pas que l'usage de gets() soit formellement déconseillée dans le texte de C99... En tout cas, il n'ya rien de tel dans le draft N869.
    Pas de Wi-Fi à la maison : CPL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec gets
    Par jaimelagalette dans le forum Débuter
    Réponses: 2
    Dernier message: 13/10/2009, 00h32
  2. Problème avec GET
    Par Menontona dans le forum VB.NET
    Réponses: 5
    Dernier message: 14/03/2009, 22h51
  3. Langage c : problème avec gets
    Par aurelien1606 dans le forum Bibliothèque standard
    Réponses: 3
    Dernier message: 09/02/2009, 02h03
  4. [Cookies] Problème avec GET
    Par philippef dans le forum Langage
    Réponses: 6
    Dernier message: 08/03/2006, 15h56
  5. problème avec GET DIAGNOSTICS
    Par hpghost dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 07/07/2004, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo