Minishell
Ce projet est une réimplémentation simplifiée d’un interpréteur de commandes UNIX, entièrement codé en C dans le cadre du cursus 42. Le projet reproduit le fonctionnement de base d’un shell traditionnel en traitant des commandes entrées par l’utilisateur, leur exécution ainsi que la gestion d’un environnement simplifié (variables, redirections, signaux).
Le parsing joue un rôle crucial : il décompose l’entrée utilisateur en commandes distinctes et gère finement les cas particuliers tels que les quotes simples et doubles, les variables d’environnement, ainsi que les différentes formes de redirections. Une attention particulière a été portée à la gestion des signaux (comme CTRL+C et CTRL+D), afin d’offrir une expérience utilisateur aussi fidèle que possible à celle d’un shell traditionnel.
La gestion des pipes a également été un aspect intéressant : la capacité d’exécuter plusieurs commandes en parallèle, chacune passant son résultat à la suivante via des tuyaux interprocessus, en exploitant efficacement les fonctions système comme fork(), execve(), dup2(), et pipe().
Points clés du projet