■ Projet Simple Shell - Guide de Préparation
■ L'objectif
Créer un shell simple en C qui reproduit les fonctionnalités de base d'un shell UNIX. Ce projet consolide vos
connaissances en programmation système, gestion de processus, et travail collaboratif.
■ Concepts clés à maîtriser
System Calls fork(), execve(), wait(), getline()... Comprendre la différence avec les fonctions normales
Processus Parent vs Child, PID, création et gestion Savoir expliquer le cycle de vie d'un processus
Environment PATH, variables d'environnement Format de déclaration et utilisation
Tokenization strtok() et parsing Comment découper les commandes utilisateur
Flux d'exécution Boucle principale du shell Du prompt à l'exécution de la commande
■ Aspects techniques importants
✓ Modes d'exécution Interactif (avec prompt) et non-interactif (pipes)
✓ Gestion mémoire Pas de fuites (utilisez valgrind)
✓ Gestion d'erreurs Gérer les cas limites et les erreurs système
✓ Code propre Noms de variables explicites, fonctions bien découpées
■ Documentation professionnelle
Votre README doit permettre à n'importe qui de comprendre, compiler et utiliser votre shell. Incluez :
description, prérequis, compilation, utilisation (avec exemples), flowchart du flux d'exécution. N'oubliez pas la
man page et le fichier AUTHORS.
■ Travail collaboratif
Git/GitHub Commits réguliers avec messages descriptifs clairs
Répartition Chaque membre doit contribuer de manière équilibrée
Compréhension Chacun doit pouvoir expliquer tout le code, pas seulement sa partie
■ Conseils pour réussir
1 Comprenez le flux Dessinez le flowchart AVANT de coder
2 Testez tôt et souvent Mode interactif ET non-interactif, avec valgrind
3 Documentez en continu Plus facile que de tout faire à la fin
4 Commits intelligents Messages clairs qui expliquent le changement
5 Revue de code en équipe Assurez-vous que chacun comprend tout
Questions ? Soyez curieux, testez, et travaillez en équipe !