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 :
Commandes UNIX Voir Tableau 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 ...
[Commande] “grep” récursif VoirLorsque l'option -r (ou -d recurse) de la commande grep n'est pas disponible, comme sous HP-UX, il faut l'utiliser conjointement avec la commande find. Par exemple, pour chercher récursivement la chaîne «CCM» dans tous les fichiers réguliers à...
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"...
[MS-Dos] Lister le contenu d'un répertoire dans un fichier VoirIl peut s'avérer pratique d'effectuer le listage d'un ou plusieurs répertoires dans un fichier, afin de tenir par exemple un catalogue de fichiers. Sous MS-Dos (ou sous Windows en ouvrant une fenêtre d'invite de commande MS-Dos) il est possible...
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...
Introduction aux systèmes UNIX VoirLe système UNIX Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs...
Tests et diagnostics du réseau VoirTester la configuration IP Avant toute chose, il est recommandé de véfier la configuration IP de l'ordinateur. Les systèmes Windows proposent un outil en ligne de commande, appelé ipconfig permettant de connaître la configuration IP de...

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
Collection CommentÇaMarche.net