J'écris mon propre shell en C. Il doit être capable d'afficher le répertoire courant de l'utilisateur, d'exécuter des commandes basées sur le chemin complet ( doit utiliser execv ), et permettre à l'utilisateur de changer de répertoire avec cd.
C'est un devoir. Le professeur ne nous a donné qu'une introduction de base au C et un squelette très bref sur la façon dont le programme devrait fonctionner. Comme je ne suis pas du genre à abandonner facilement, cela fait trois jours que je cherche comment faire, mais je suis maintenant dans l'impasse.
Voici ce que j'ai jusqu'à présent :
- Affiche le nom d'utilisateur, le nom d'ordinateur et le répertoire actuel de l'utilisateur (par défaut, le répertoire personnel).
- Demande à l'utilisateur d'entrer des données, et obtient ces données.
- Divise l'entrée de l'utilisateur par " " en un tableau d'arguments.
- Divise la variable d'environnement PATH par " :" en un tableau de jetons.
Je ne suis pas sûr de savoir comment procéder à partir de là. Je sais que je dois utiliser la commande execv mais dans mes recherches sur google je n'ai pas vraiment trouvé d'exemple que je comprenne. Par exemple, si la commande est bin/ls, comment execv sait-il qu'il faut afficher tous les fichiers/dossiers du répertoire d'origine ? Comment puis-je dire au système que j'ai changé de répertoire ?
J'ai beaucoup utilisé ce site qui m'a été utile : http://linuxgazette.net/111/ramankutty.html mais encore une fois, je reste sur ma faim.
Merci pour votre aide. Faites-moi savoir si je dois poster une partie de mon code existant, je n'étais pas sûr que ce soit nécessaire.