Voila la section C/UNIX. Au menu : du C et de l'UNIX ;-)
Cours de C "avancé"
Les énoncés thématiques des TPs :
- TP 1a : Outils : débogueur, valgrind, sanitizers, introduction à la compilation séparée et tests unitaires
- TP 1b : Sudoku
- TP 2 : Pointeurs
- TP 3 : FloodIt : moteur de jeu (texte)
- TP 4 : Calcul vectoriel et matriciel
- Hall of Fame : Séance 1 - Séance 2
- Compléments - Structures particulières (énumération, union)
- FloodIt : programmation graphique en SDL2 ou en Xlib
- Génération de documentation (LC II, le retour)
- Aide au développement [compilsepx11.c X11] [compilsepsdl.c SDL] [profilage.c]
- Calculatrice
- The end
Quelques ressources :
- Makefile simple
- Examens
- Exigences pour l'examen
- Quelques outils pour la mémoire
Versions alternatives de quelques TPs :
Semaines bloquées : UNIX / C
- TP UNIX du vendredi : connexion et fichiers, éditeur VI
- TP Unix du lundi : droits et redirections
- TP Unix du mÂrdi : les processus (ps, kill) et les commandes nohup et crontab
- TP Unix du mercredi : réseau, connexion à distance, web
- TP 1 de découverte du C : syntaxe, variables, affichage et boucles
- TP 2 de découverte du C : saisie et fonctions
- TP 3 de découverte du C : tableaux, devinette et chaînes de caractères
- TP 4 de découverte du C : jeu mystère
- TP 5 de découverte du C : vérifications et fichiers
- TP ultime des semaines bloquées : MO MO MOTUS
- Compléments de TP C
- Code de P. Eastmann, IOCCC 2011 (compiler avec l'option -lm)
Environnement de travail
Les TPS doivent être fonctionnels sur la machine de référence, c'est-à-dire une Debian 12 avec gcc 12.2.0. Cette configuration est disponible sur les PCs à votre disposition ou bien sur votre machine virtuelle originale.
Les codes sources doivent être commentés et respecter les conventions d'indentation.
Les options de compilation à appliquer sont les suivantes : -Wall -Wextra -Wdeclaration-after-statement -Werror=vla
L'option -g est à spécifier pour utiliser le débogueur et/ou valgrind.
Il est important d'être efficace pour le développement. Les éditeurs installés sur les serveurs sont : nano, xemacs, [vs]code, vi...
Quelques références...
- Règles de développement sécurisé en C - ANSSI
- Guide de style du noyau LINUX
- Dernier brouillon de la norme C17
- Référence C par Richard Stallman [pdf]