SYSTÈME DE FICHIERS C
Développement d'un outil CLI performant en C pour la manipulation de fichiers binaires.
Contexte
Après années JavaScript/Python/PHP, je ressentais besoin de comprendre ce qui se passe 'sous le capot'. Projet C pur : gestion mémoire manuelle, pointeurs, bits. Retour aux fondamentaux.
Méthodologie d'Apprentissage
- 1
Théorie : The C Programming Language (Kernighan & Ritchie)
- 2
Progression : lecture fichiers texte → binaires → structures custom sur disque
- 3
Valgrind à chaque étape pour détecter fuites mémoire
- 4
Makefiles manuels (pas IDE magic)
- 5
Tests Bash automatisés : comparison output attendu vs réel
Défis Techniques
Segfaults silencieux (corruptions mémoire latentes)
Crashes non immédiats difficiles à tracer. Solution : AddressSanitizer (ASan) + GDB pour debugging profond.
Endianness et portabilité (x86 vs ARM)
Outil fonctionnait localement mais échouait sur autre arch. Solution : fonctions conversion (htonl, ntohl).
Performance I/O (lecture char par char 100x plus lente)
Solution : buffer lecture 4096 octets aligné taille pages mémoire.
Résultats
CLI fonctionnel : lecture/écriture/transformation fichiers multiples GB
Zéro fuite mémoire (Valgrind 1000+ exécutions)
Compréhension gestion mémoire, pointeurs, cycle de vie données
Capacité : lire code bas niveau (kernel, librairies système)
Explore More