IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Faire une entrée non bufferisée


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 16
    Points : 6
    Points
    6
    Par défaut Faire une entrée non bufferisée
    Bonjour tout le monde,

    Je suis en train de coder un mini shell dans un but didactique. Pour l'instant pas grand chose n'est géré (c'est à dire, qu'il lit une commande, gère la variable PATH, et exécute des commandes). Je suis cependant confronté à un petit problème (qui est tout de même assez important), cela concerne les entrées au clavier : pour l'instant j'effectue une entrée avec fgetc() caractère par caractère tant que c'est différent de EOF ou bien de '\n' et tant que je n'ai pas atteint le nombre de caractères lus maximum. Mon problème est que ce type d'entrée est bufferisé, c'est à dire que si je demande de lire N caractères, est que l'utilisateur entre plus de N caractères, les caractères supplémentaires seront utilisé pour lire la prochaine entrée.

    Ce que je voudrais faire, c'est de pouvoir lire le caractères entré par l'utilisateur sans qu'il ait besoin d'appuyer sur entrée (les lire au fur et à mesure qu'il les tappe), et éviter de bufferiser les entrées pour éviter le problème cité plus haut. Ajouté à cela, j'aimerais pouvoir limiter le nombre de caractères que l'utilisateur peut tapper sur sa ligne de shell.

    Je voudrais autant que possible éviter d'utiliser la librairie curse (ou tout autre lib). Je veux faire en C standard.

    Quelqu'un peut-il m'aider ?

    Merci bien ! :-)

  2. #2
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    click my www
    ............|___
    ...................\
    .................._|_
    ..................\ /
    ..................."

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Effectivement je n'y avais pas pensé (à la FAQ)... J'ai cependant une question, cette solution est-elle vraiment portable ? Marche-t-elle sur tous les unix ? Et sur tous les terminals qu'on puissent trouver ?

Discussions similaires

  1. help! faire une entrée de donée en cours d'execution
    Par thetawaves dans le forum Caml
    Réponses: 1
    Dernier message: 12/03/2013, 21h24
  2. Réponses: 3
    Dernier message: 23/07/2010, 15h46
  3. Réponses: 3
    Dernier message: 22/09/2005, 10h34
  4. Faire une division entre deux chiffres?
    Par shun dans le forum Langage SQL
    Réponses: 9
    Dernier message: 09/09/2005, 16h37
  5. Réponses: 2
    Dernier message: 07/07/2005, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo