Bonjour,

Je suis en train de coder un petit interpréteur de terminal en mode canonique. Jusque là, rien de bien compliqué. Je teste avec l'entrée du port série, tout fonctionne. (fonction open sur /dev/ttyS0 puis tcsetattr avec les paramètres idoines)

Seul hic, je veux tester un peu tout ça et voir le comportement un peu dans les limites de ce que peut recevoir ce port série (tout ce qu'il y a plus de normal, n'est-ce pas ?), et là je cherche à entrer ce que je veux.

Première solution : utiliser simplement stdin. Jusque là encore, tout va bien. Sauf que je n'ai pas la possibilité d'entrée un flux de données important puisque je tape au fur et à mesure au clavier.

J'essaye donc la redirection vers un fichier. Et là, c'est le drame ! Le fichier est bien lu, mais en mode raw, pas d'arrêt de la lecture à la fin de chaque ligne.

Ce n'est pas grave, j'essaye simplement l'opérateur < : "MonProgramme < MonfichierTexte". Idem, tout est lu d'un bloc, plus de mode canonique.

Ben alors, autre solution, le pipe, : "echo "Montexte" | MonProgramme". Idem.


Pour essayer de trouver un semblant de diagnostic, j'ai utilisé la fonction isatty(). Et cette fonction me donne un résultat cohérent. Dès que je perd le mode canonique, c'est quand cette fonction me répond que mon entrée n'est pas un terminal.



Une solution à cela ?