Unix et pointeurs avancés
Progression
#Unix, pointeurs avancés et outillage système
Nous quittons la bibliothèque standard pour dialoguer directement avec l’OS. Les étudiants apprennent à utiliser les appels POSIX (open
, read
, write
, close
) et à interpréter les erreurs via errno
. Des exemples interactifs montrent comment contrôler les signaux avec sigaction
afin de terminer proprement un programme.
Ce détour par le système est aussi l’occasion de manipuler des pointeurs bas niveau : conversion entre void *
et uint8_t *
pour inspecter un buffer, emploi de restrict
pour aider le compilateur à optimiser et recours à volatile
lorsqu’on lit des registres mémoire-mappés. Chaque concept est associé à un mini laboratoire, comme l’écriture d’un hexdump
et la gestion d’un buffer mémoire partagé entre un thread producteur et un thread consommateur.
Enfin, nous dressons la cartographie de la chaîne d’outils côté build. make
, pkg-config
, ar
, nm
ou objdump
sont utilisés sur un projet réel pour comprendre leur rôle. Nous ajoutons un chapitre consacrée aux tests unitaires en C (avec cmocka
ou un framework minimaliste maison) et à l’automatisation via des scripts shell. Les travaux pratiques conduisent à produire une bibliothèque partagée et à la charger dynamiquement via dlopen
.
#Atelier
- Construisez une mini bibliothèque partagée (
.so
) et chargez‑la avecdlopen
. - Écrivez un utilitaire
hexdump
minimal.