Ajout de raccourcis clavier dans mon shell

Donc, je dois écrire un shell de base en C pour l’école, pas de tuyaux, pas de redirections, je dois juste exécuter les binarys et coder quelques commandes intégrées.

J’en ai déjà fait l’essentiel, mais maintenant je voudrais implémenter des raccourcis clavier, comme ctrl + L pour effacer l’écran, haut / bas pour naviguer dans l’historique des commandes, ctrl + D pour quitter le shell, etc.

Le problème est que je ne sais pas comment lire les entrées sans que l’utilisateur appuie sur Entrée.

Je dois également mentionner que je ne peux utiliser qu’un panel très limité de fonctions, la seule fonction que je puisse utiliser pour lire les entrées est l’appel système read ().

Si quelqu’un a une idée, ce serait génial

Généralement, utilisez la bibliothèque readline pour lire les entrées. Il prend en charge la définition de raccourcis, l’historique, l’achèvement automatique, … et est conçu à cet effet.

Si vous n’êtes pas autorisé à l’utiliser, je suppose que votre professeur veut que vous vous concensortingez sur des parties importantes de la tâche plutôt que de vous en faire.

Si vous voulez juste jouer un peu, vous pouvez démarrer votre shell en utilisant la commande rlwrap :

 rlwrap your_shell 

rlwrap peut être utilisé pour append une fonctionnalité readline à des commandes arbitraires lues à partir de stdin.