SkayaWiki

TrameSysteme

JeromePetazzoni :: DerniersChangements :: DerniersCommentaires? :: ParametresUtilisateur :: http://www.enix.org/ :: Vous êtes ec2-18-218-38-125.us-east-2.compute.amazonaws.com
Trame des TDs de Systeme à venir:

TD1 : 18 / 02 / 2005
Programmation de liste chaînée avec passage par double pointeur.
TD2 : 25 / 02 / 2005
Les pointeurs de fonctions: création d'une structure contenant des pointeurs
de fonctions pour des listes chaînées génériques.
TD3 : 4 / 03 / 2005
Au début du TD: On leur fournit un fichier "source.c" contenant les sources
des listes chaînées génériques ainsi que les tables de hachages avec la doc
pour les listes.

On leur laisse 1h pour lire le code, le comprendre, le partager en .h et .c, le documenter,
générer la doc avec doxygen.

Ensuite on passe 1h sur "make" avec création d'une librairie.

TD4 : 11 / 03 / 2005
Fin du makefile et des bibliothèques statique et dynamique
Implanter un petit truc avec dlopen dlsym, par exemple sqrt()
Une deuxième version avec les locale et un chargement des messages en fonction de la locale.
Implémenter le traceur de mémoire du cours avec LD_PRELOAD

Pour ceux qui veulent manger et peut-être pour un mini-projet
Ajouter des directive de précompilation pour choisir le nom des fonctions malloc(), au moment de la compilation
Ajouter les nouvelles régles au Makefile pour compiler différemment la bib (-Dmalloc=realmalloc)
Implémenter un vérificateur de mémoire maison avec LD_PRELOAD

TD5: ???
Copy avec fopen, fread et fwrite.
Faire tester la commande tail qui affiche les n dernières lignes d'un fichier.
Faire head.
En écrire une version de tail : idée aller avec fseek en fin de fichier - taille buffer. Lire taille_buffer avec fread et rechercher en arrière dans le buffer s'il y a assez de retour à la ligne. Si c'est bon afficher à partir de la position. Sinon aller avec fseek en fin de fichier - 2*taille buffer et recommencer, etc. Attention au dernier caractère si c'est un \n.
Bench sur copy avec taille buffer.

TD6: ???
Compiler/installer libreadline avec ./configure --prefix, make, make install faire en sorte que cela s'installe dans ~/lib/
un wrapper de commande style rl avec readline() et popen()
Ajouter des options avec getopt(), par exemple suaver et relire l'historique depuis un fichier dont le nom est passé sur la ligne de commande, préciser le prompt.
Ecrire sort avec fgets et qsort()
???Ajouter les assert() dans le code ou faire un peu de getopt???

TD7 : ???
Peut-être finir le vérificateur :-) sinon TD de shell.
Expliquer .bashrc, etc.
Faire des grep avec expression régulières, ils ont vu cela en Automate qu'ils suivent aussi (normalement!)
Ajouter des alias, prompt en couleur, entrée dans le path et un LD_LIBRARY_PATH dans ~/lib
Ajouter dans le bashrc des trucs genre if [ fichier existe ]; then (le charger) fi ou for i in $(ls toto.d/) do (chager $i) done
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]