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 ! :-)
Partager