Les Allergies
Alimentaires
Posez votre question Signaler

[unix] commande de saisie [Résolu]

sistablack - Dernière réponse le 11 mai 2005 à 15:50
Bonjour à tous,

J'utilise vi sous linux mandrake 10.1.
Je cherche une commande qui permettrait de saisir un certain nombre de caractère et arriver au nombre maximal, la saisie s'arrete. (equivalent a cgets sous dos).
Par exemple, char var[10]; lorsque l'utilisateur a saisi 10 carac. la saisi s'interrompt.
avec Fgets la saisie ne s'interrompa meme avec sizeof ou strlen.

Merci pour votre aide.
Lire la suite 

[unix] commande de saisie »

Suggestions
4 réponses
Réponse
+0
moins plus
Salut sistablack,

Ca n'est pas très clair comme question...
Pourquoi? Tu veux faire un buffer overflow ?...
Quel langage de programmation utilises-tu ?
A savoir :
Le C/C++ ne prévoit pas à l'origine de protection contre ce type d'attaque, il existe cependant des librairies permettant de prévenir ce genre d'attaque.
Le langage Perl en revanche est muni de fonctions permettant de "resizer" un tableau dynamiquement.

J'espère avoir répondu à ta question.

@+
SISTABLACK- 8 mai 2005 à 08:31
Bonjour,

J'utilise le C.
En fait, j'ai un utilisateur qui doit saisir un nom de fichier (j'ai choisi un format 8.3 pour plus de simplicité). Il doit saisir juste les 8 premiers caractères (l'extension est rajouter avec un strcat) et je voudrais qu'il en saisisse 8.
Je n'ai pas trouver de méthode qui permet d'arrêter la saisi au clavier. Je suis obligée de compter le nombre de caractère et de demander a l'utilisateur de saisir un nom de fichier tant que c'est différent à 8 caractères.

Vois-tu ce que je veux faire?

Merci beaucoup pour ton aide
SISTABLACK- 8 mai 2005 à 12:01
En fait le problème c'est que lorsque l'utilisateur dépasse la taille maximale pour la valeur de la première variable, les caractères s'enregistre pour la variable suivante.
Cela veut dire qu'il y a déjà une valeur pour la variable que l'utilisateur devrait saisir.
Je ne vois pas d'autres moyens que de limiter chaque saisie pour ne pas influencer les suivantes.

Merci de votre aide.
Ajouter un commentaire
Réponse
+0
moins plus
il faut utiliser la commande de substitution :
par exemple pour remplacer 7 caractères
7s "nouveau texte" <Echap>
Ajouter un commentaire
Ce document intitulé « [unix] commande de saisie » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?