Pages : 1
#1 Le 28/02/2007, à 15:42
- maltutoma
puts et gets
salut la communauté. je voudrais savoir pourquoi je ne peux pas utiliser les fonctions puts et gets dans mes programmes, ont m'affiche que c'est dangereux de les utiliser. je voudrais que l'on me l'explique et qu'on me dise aussi comment régler le problème si c'est possible. merci
Hors ligne
#2 Le 28/02/2007, à 15:52
- Ryo
Re : puts et gets
Bonjour,
Désolé, j'ai pedu ma boule de crystal : c'est en quel langage ? C'est appliqué à quoi puts et gets ?
#3 Le 28/02/2007, à 16:06
- maltutoma
Re : puts et gets
c'est en C pour la la lecture et l'affichage d'une chaine de caractère
Hors ligne
#4 Le 28/02/2007, à 16:22
- iuchiban
Re : puts et gets
Euh vaut mieux utiliser printf et scanf en C.
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#5 Le 28/02/2007, à 16:30
- maltutoma
Re : puts et gets
c'est le pourquoi que je veux savoir
Hors ligne
#6 Le 07/03/2007, à 21:48
- Bco
Re : puts et gets
:rolleyes:Because characters string may outbound its limits. Buffer overflow.
#7 Le 12/03/2007, à 11:16
- maltutoma
Re : puts et gets
ok alors je prendsça comme ça.merci
Hors ligne
#8 Le 12/03/2007, à 12:01
- Chaussette
Re : puts et gets
Laisses.
Des fois c' est comme ça ici.
Une petite poussée de méprise et ils se sentent bien.
Pour gets :
"La fonction gets est un fgets sur stdin avec la différence que le line feed n'est pas mis dans chaîne. Malheureusement, l'interface de gets est une catastrophe : il n'a pas le paramètre taille qui donne la taille du tableau pointé par chaîne. Ceci interdit donc à gets toute vérification pour ne pas déborder du tableau.
"
http://c.developpez.com/cours/bernard-cassagne/node73.php
Ca signifie que quand l' utilisateur entre un mot, ou une phrase, plus grande que ne l' est la chaine de caractère (un tableau de char, ou un espace alloué) pointée par le pointeur "chaine" (et qui doit être remplie avec la saisie de l' utilisateur) , gets va continuer a écrire au delà de la fin de cette chaine tout ce que l' utilisateur aura entré. (dans les cases mémoires, celles directement après, donc n' importe où et gros risque de plantage...)
Comme c' est au programmeur de vérifier si la taille de la saisie est inférieure a la taille de la chaine donnée à être remplie, cela fait de gets une fonction dangereuse.
Son équivalent, fgets, permet de préciser une taille.
Pour puts je ne vois pas de problèmes.
Les clowns se marient en grande pompes
Hors ligne
#9 Le 12/03/2007, à 12:37
- maltutoma
Re : puts et gets
merci beaucoup, c'est beaucoup plus explicite.
j'ai une autre question mais ne concerne pas la programmation. voilà je voudras savoir si il n'y a pas un logiciel qui pourrais me répertorier toutes les dépendances manquantes pour l'installation d'un logiciel, parce que vu que je n'ai pas la connexion à la maison, je suis obligé de télécharger les dépendances les unes après les autres.
Hors ligne
#10 Le 12/03/2007, à 14:07
- Chaussette
Re : puts et gets
tu devrais poser ta question ici plutôt:
http://forum.kubuntu-fr.org/viewforum.php?id=25
edit : un petit résolu ?
Dernière modification par Chaussette (Le 12/03/2007, à 14:38)
Les clowns se marient en grande pompes
Hors ligne
Pages : 1