Rechercher : dans
Par :

[unix] commande de saisie

Dernière réponse le 11 mai 2005 à 15:50:20 sistablack, le 6 mai 2005 à 00:04:33 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « [unix] commande de saisie » dans :
Comment ça marche "tar" VoirLa commande tar Archivage avec "tar" Archiver un dossier (ou répertoire) avec "tar" Désarchivage avec "tar" Désarchiver un fichier avec "tar" Désarchiver des fichiers sélectionnés avec "tar" Archivage avec "tar" La commande "tar" permet...
Liste des ports ouverts VoirQue vous soyez sous Windows ou Linux/Unix, la commande suivante (en console) permet d'afficher la liste des ports ouverts sur votre ordinateur :netstat -a Pour des outils graphiques plus poussés, voir Quels sont les ports ouverts sur ma machine
Télécharger UniConvertor VoirUniConvertor est un convertisseur de formats vectoriels sous licence libre. Cette application présente une interface en ligne de commande et permet de convertir un format de fichier dans un autre. Il offre des filtres d’importation pour...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
Utilisation de Telnet VoirPrésentation de Telnet Telnet est un protocole permettant d'émuler un terminal à distance, cela signifie qu'il permet d'exécuter des commandes saisies au clavier sur une machine distante. L'outil Telnet est une implémentation du protocole...

1

BaKa_, le 6 mai 2005 à 12:49:49

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.

@+
La confiance n'exclut pas le contrôle !

Répondre à BaKa_

2

SISTABLACK, le 8 mai 2005 à 08:31:21

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

Répondre à SISTABLACK

3

SISTABLACK, le 8 mai 2005 à 12:01:46

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.

Répondre à SISTABLACK

4

 fozzie, le 11 mai 2005 à 15:50:20

Il faut utiliser la commande de substitution :
par exemple pour remplacer 7 caractères
7s "nouveau texte" <Echap>

Répondre à fozzie