Bonjour!
Alors voilà, je suis en école (42) et j'ai pas mal de projet qui me demande de récupérer des infos sur l'entré standard (minishell, select, scanf....etc), avec comme contrainte de ne pas utiliser ni ncurse, ni les fonctions définies dans stdio.h.
Du coup c'est read et termios pour virer l'ICANON et pouvoir reprendre la main de read à chaque caractère tapé. (J'imagine que c'est la seule solution que j'ai pour pouvoir implémenter le comportement des flèches 'up' et 'down' dans le minishell par exemple (récupération des anciennes lignes de commandes (fin de la parenthèseption))).
Première question: Y a-t-il un moyen de garder le code derrière les caractères de contrôle tout en récupérant la main sur read après chaque caractère tapé?
Si non, je vais être obligé à chaque fois, de set la struct termios et de gérer chaque type de caractère en fonction du projet, ainsi que certains signaux (genre SIGCONT, pour re-set la struct termios)… Mais le truc c'est que je suis bien trop fainéant…
Du coup, j'ai imaginé faire une petite lib qui me permette de rajouter-supprimer des caractères de contrôle et signaux. Et surtout de pouvoir modifier le pointeur de fonction rattaché à ce caractère.
Comme ça il y aurait une fonction par défaut pour chaque type de caractère (même comportement que read), et une autre fonction qui me permette de modifier-ajouter-supprimer le code derrière chaque type de caractère. (Du coup pouvoir reprendre la main avant le '\n' si besoin).
Autres questions : - Pensez vous que c'est une bonne idée? (que ça va réellement me faire gagner du temps).
- Pensez vous que je pourrais facilement gérer des projets aussi différents que le minishell et select avec une technique de ce genre ?
- Avez vous d'autres pistes ?
Merci!!
Partager