Libft
libft est ma librairie personnelle en C, pensée comme une “boîte à outils” réutilisable dans tous mes projets. Le but n’est pas seulement de recopier la libc : c’est d’écrire du code fiable, normé et maintenable, puis de le packager en librairie statique pour accélérer le développement sur la suite du cursus.
L’objectif est double :
- Reprendre les fondamentaux C (pointeurs, mémoire, chaînes, gestion d’erreurs) en implémentant des fonctions à comportement précis.
- Construire une base cohérente et testable, qui servira ensuite dans des projets comme
ft_printf,get_next_line,cub3D, etc.
Principe
- Implémenter un ensemble de fonctions “libc-like” (ex. gestion mémoire, manipulation de chaînes, conversions, etc.).
- Ajouter des outils pratiques réutilisables (listes chaînées, helpers, etc. selon la version du sujet).
- Compiler l’ensemble en
libft.aviaar, avec un Makefile standard.
Points importants
- Comportements stricts : respecter le résultat attendu (y compris sur les cas limites).
- Gestion mémoire : éviter les fuites, sécuriser les allocations et libérations.
- Qualité du code : découpage clair, fonctions courtes, utilitaires génériques.
- Réutilisabilité : une fois validée,
libftdevient la base de beaucoup de projets.
Contraintes respectées
- Langage : C
- Livraison : librairie statique
libft.a - Makefile :
all,clean,fclean,re(etbonussi applicable) - Respect des règles de style/Norme 42 (selon ton campus)
Ce que ça m’a apporté
libft m’a donné une vraie discipline : écrire des fonctions robustes, gérer proprement la mémoire, et construire une librairie “pro” réutilisable. C’est aussi le projet qui m’a permis de poser une base solide avant de passer à des sujets plus complexes (parsing, I/O, rendu, etc.).
Bonus
- Implémentation d’outils supplémentaires (ex. listes chaînées) et helpers orientés projets.
Compilation
make
Génère :
libft.a
Nettoyage :
make clean
make fclean
make re
Intégration dans un projet
- Ajouter
libft.aau link :
cc main.c -L. -lft
- Inclure le header :
#include "libft.h"
Bonnes pratiques
- Recompiler
libften premier dans un Makefile “multi-projets”. - Utiliser des fonctions claires et unitaires pour faciliter le debug.
Organisation typique
*.c: implémentationslibft.h: prototypes + typesMakefile: build de la librairie viaar
Stratégie
- Regrouper les fonctions par thème (strings, memory, conversions, list…).
- Standardiser les helpers (naming, retours d’erreurs, checks
NULL). - Tester rapidement les edge cases (chaînes vides,
NULL, allocations, tailles extrêmes).
Pourquoi cette base est clé
Avoir une libft solide évite de réécrire les mêmes utilitaires, rend le code plus propre, et accélère la production sur la suite du cursus.