
Custom Printf - Implémentation C
01. Vue d'ensemble
Réimplémentation complète de printf en C, avec gestion de nombreux spécificateurs et respect des standards Betty sur Ubuntu 20.04.
Objectif
Comprendre en profondeur les mécanismes internes de la libc en recréant printf (parseur, conversions, variadique).
Résultat
Implémentation modulaire robuste de printf couvrant 13+ spécificateurs et compilée avec des flags stricts gcc.
02. Stack technique
03. Fonctionnalités clés
Support de %c, %s, %%, %d, %i, %u, %o, %x, %X, %p, %S, %b, %r, %R
Structure modulaire (helpers.c, conversion.c, modifiers.c)
Gestion des modificateurs de longueur, largeur de champ, précision et flags
Compilation avec -Wall -Werror -Wextra -pedantic -std=gnu89
Conforme aux guidelines Betty C
04. Pipeline d'ingénierie
Définition des prototypes et structures dans main.h
Développement de la boucle centrale de parsing de format dans _printf
Implémentation de chaque spécificateur via des fonctions réutilisables
Ajout de la gestion des modificateurs de longueur, largeur de champ, précision et flags dans modifiers.c
Compilation et tests avec flags gcc stricts sur Ubuntu 20.04 LTS
05. Défis & exécution
Contrainte
Parser des chaînes de format incluant combinaisons de flags, largeur, précision et spécificateurs
Exécution
Conception d'une table de dispatch modulaire associant chaque spécificateur à sa fonction handler.
Contrainte
Gérer de manière sûre les arguments variadiques pour tous les types pris en charge
Exécution
Utilisation correcte de va_list, va_start, va_arg et va_end dans toutes les branches de conversion.
Contrainte
Implémenter des spécificateurs non standards comme %b (binaire), %r (reverse) et %R (ROT13)
Exécution
Séparation du code en modules helpers.c, conversion.c et modifiers.c pour la maintenabilité et la conformité Betty.