Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/02/2007, à 16: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, à 16: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, à 17: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, à 17:22

iuchiban

Re : puts et gets

Euh vaut mieux utiliser printf et scanf en C.

Sinon, http://c.developpez.com/sources/c/?page=VIII


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, à 17:30

maltutoma

Re : puts et gets

c'est le pourquoi que je veux savoir

Hors ligne

#6 Le 07/03/2007, à 22:48

Bco

Re : puts et gets

:rolleyes:Because characters string may outbound its limits. Buffer overflow.

#7 Le 12/03/2007, à 12:16

maltutoma

Re : puts et gets

ok alors je prendsça comme ça.merci

Hors ligne

#8 Le 12/03/2007, à 13: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, à 13: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, à 15: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, à 15:38)


Les clowns se marient en grande pompes

Hors ligne