Skip to content

Latest commit

 

History

History
63 lines (45 loc) · 2.54 KB

toDo.md

File metadata and controls

63 lines (45 loc) · 2.54 KB

Rendu

  • fichier AUTHORS.md
  • Makefile avec make et make clean
  • fichier ARCHITECTURE.md expliquant la stratégie adoptée pour répondre au sujet (notamment l'architecture logicielle, les structures de données et les algorithmes implémentés)

Gestion des signaux

  • jsh ignore les signaux SIGINT, (...) contrairement aux processus exécutant des commandes internes. (jsh.c:33-40 ; exec.c:162-176)
  • OPTIONNEL: amélioration d'exit.

Redirections

  • <,>,>>,>|,2>,2>>,2>| (exec.c:111-150 ; jsh.h:21)
  • |
  • <()

Erreurs du parseur à gérer

  • & qui n'est pas à la fin (input.c:64)
  • cmd > - redirection vers rien (input.c:87)
  • cmd > | ... - redirection vers pipe
  • cmd | | ... - double pipe

Formatage du prompt

(input.c:125-141)

  • nombre de jobs surveillés avec une couleur
  • répertoire courant avec une couleur
  • 30 caractères max

Gestion de la ligne de commande

  • affichage du prompt sur sa sortie erreur (jsh.c:31)
  • affichage du prompt et lecture de la ligne saisie (jsh.c:50 ; input.c:141)
  • découpage en bloc (input.c:153)
  • interprétation des caractères spéciaux &,<,>,| (input.c:)
  • exécution de la commande (jsh.c:52)
  • check des jobs en cours avant chaque nouvel affichage du prompt (jsh.c:48)
  • affichage des jobs ayant changé de status (créé, stoppé, terminé, détaché) sauf pour ceux au premier plan devenus (achevé, tué ou détaché) (jsh.c:49)
  • Lorsque la fin de l'entrée standard est atteinte (Ctrl-D), exécute exit (input.c:143)

Commandes internes

  • valeur de retour 0 pour succès et 1 pour échec
  • cd, cd rep, cd - (internalcmd.c:38)
  • ? (internalcmd.c:94)
  • exit lorsqu'il y a des jobs en cours ou suspendus (internalcmd.c:81)
  • exit val, exit (internalcmd.c:79)
  • jobs (internalcmd.c:107)
  • jobs -t
  • jobs %job
  • bg %job, fg %job (internalcmd.c:XXX)
  • kill [-sig] %job, kill [-sig] pid (internalcmd.c:122)

Commandes externes

  • exécuter toutes les commandes externes, avec ou sans arguments, en tenant compte de la variable d'environnement PATH. (exec.c:172 ; exec.c:80, execvp prend en compte la variable PATH)

  • un job dont au moins un processus n'a pas terminé, mais dont tous les processus directement lancés par le shell ont terminé, est détaché (detached) et quitte la surveillance de jsh;