Simple Shell
Interpréteur de commandes UNIX en C
Période
Décembre 2024
Langage
C
Contexte
Holberton School
Simple Shell est une implémentation d'un interpréteur de commandes UNIX simplifié, développé entièrement en C. Le programme est capable de fonctionner en mode interactif (avec prompt) et en mode non-interactif (exécution de scripts).
Ce projet a permis d'approfondir la compréhension des processus UNIX, de la gestion mémoire en C, et des mécanismes de fork/exec au cœur des systèmes d'exploitation.
Technologies utilisées
Fonctionnalités implémentées
Exécution de commandes
- • Exécution de commandes simples avec arguments
- • Recherche dans le PATH
- • Gestion des chemins absolus et relatifs
- • Support des commandes built-in (exit, env, setenv, unsetenv)
Parsing & Gestion d'erreurs
- • Parsing des entrées utilisateur
- • Gestion des erreurs d'exécution
- • Messages d'erreur appropriés
- • Gestion du signal EOF (Ctrl+D)
Défis techniques
Gestion de la mémoire
En C, toute allocation dynamique doit être libérée manuellement. Le projet a nécessité une attention particulière pour éviter les fuites mémoire (memory leaks), notamment lors du parsing et de la gestion des chaînes de caractères.
Fork & Exec
Compréhension approfondie des processus UNIX : création de processus fils avec fork(), remplacement du processus avec exec(), et gestion du processus parent avec wait().
Parsing robuste
Développement d'un parser capable de traiter correctement les espaces, les arguments multiples, et de gérer les cas limites (entrée vide, commandes inexistantes, etc.).