Examens corriges

Exercices et Travaux Pratiques de Programmation Unix en Bash et C

Présentation générale du document

Ce document rassemble l'ensemble des travaux dirigés (TD) et des travaux pratiques (TP) consacrés à la programmation Unix. Conçu par Edouard Thiel, il s'inscrit dans le cadre des unités d'enseignement SIN3U7 et SIN4U2. À travers une progression méthodique, le support guide les étudiants dans l'apprentissage de l'environnement système Linux et Unix, en couvrant à la fois le scripting shell et la programmation en langage C.

Le document est structuré en plusieurs modules successifs abordant d'abord les scripts Bash sous divers angles (manipulation de chaînes, fichiers, conditions, boucles, fonctions, tableaux associatifs) avant de basculer vers la programmation système en C avec la gestion des processus, des signaux et la structuration des projets via les Makefiles.

Les scripts Bash et la manipulation de texte

La première partie du document met l'accent sur l'automatisation et le traitement de texte à l'aide de scripts Bash. Les exercices demandent aux étudiants de concevoir des programmes capables de lire des entrées au clavier, de valider des conditions arithmétiques ou textuelles à l'aide de la commande test, et de manipuler des fichiers ou des répertoires de manière récursive sans utiliser d'outils haut niveau interdits selon les consignes. Des notions comme le filtrage avec grep, le chiffrement par décalage avec tr (rot13), ou encore l'utilisation de tubes (pipes) sont largement explorées.

Les chapitres avancés sur les scripts introduisent l'utilisation des tableaux associatifs pour stocker et croiser des données issues de fichiers texte, comme la recherche de doublons à l'aide de fonctions de hachage et de sommes MD5. Ces exercices permettent d'appréhender la gestion de structures de données dynamiques directement dans le shell Bash.

Programmation système en C : processus et signaux

Une part importante du document est dédiée à la programmation en langage C sous Unix. Les étudiants y apprennent à manipuler les processus via les appels système fondamentaux. La création de processus fils et petits-fils, la gestion de leur terminaison, ainsi que le recouvrement d'exécutables (fonctions de la famille exec) font l'objet d'exercices pratiques détaillés.

Le document aborde également la communication inter-processus et la gestion asynchrone à travers l'étude des signaux Unix. Les étudiants apprennent à intercepter des signaux, à mettre en place des gestionnaires (handlers) robustes à l'aide de sigaction, et à maîtriser des mécanismes d'alarme ou de transmission de valeurs entre processus.

Compilation et automatisation avec Makefile

Enfin, le support aborde la gestion de projets logiciels complexes à l'aide de l'utilitaire make. Les TD et TP guident pas à pas la rédaction de fichiers Makefile, depuis la déclaration manuelle des dépendances entre fichiers sources C et en-têtes .h jusqu'à l'utilisation de règles génériques et la génération automatique de dépendances avec des outils dédiés. L'intégration de scripts de configuration et la gestion des options de compilation complètent cet apprentissage indispensable pour tout développeur sous environnement Unix.

Questions fréquentes

À qui s'adresse ce document de travaux pratiques ?

Ce document s'adresse aux étudiants en programmation Unix inscrits dans les unités d'enseignement SIN3U7 et SIN4U2, encadrées par Edouard Thiel.

Quels sont les principaux langages et outils abordés ?

Le document couvre principalement le scripting Bash sous Linux/Unix, la programmation en langage C pour la gestion des processus et des signaux, ainsi que l'utilisation de Makefiles pour la compilation.

Quels thèmes sont traités dans la partie consacrée aux scripts Bash ?

Les exercices abordent la lecture d'entrées, les structures conditionnelles, les boucles, les fonctions, la manipulation de fichiers, les expressions régulières, ainsi que l'utilisation de tableaux associatifs.

Comment les processus en C sont-ils étudiés dans le document ?

L'étude des processus en C comprend la création de hiérarchies de processus (fils et petits-fils), la gestion des codes de retour, le recouvrement de code et la capture de signaux asynchrones.





Télécharger Exercices et Travaux Pratiques de Programmation Unix en Bash et C pdf