Aller au contenu principal

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 avec dlopen.
  • Écrivez un utilitaire hexdump minimal.