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

  1. Implémenter un ensemble de fonctions “libc-like” (ex. gestion mémoire, manipulation de chaînes, conversions, etc.).
  2. Ajouter des outils pratiques réutilisables (listes chaînées, helpers, etc. selon la version du sujet).
  3. Compiler l’ensemble en libft.a via ar, 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, libft devient la base de beaucoup de projets.

Contraintes respectées

  • Langage : C
  • Livraison : librairie statique libft.a
  • Makefile : all, clean, fclean, re (et bonus si 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

  1. Ajouter libft.a au link :
cc main.c -L. -lft
  1. Inclure le header :
#include "libft.h"

Bonnes pratiques

  • Recompiler libft en premier dans un Makefile “multi-projets”.
  • Utiliser des fonctions claires et unitaires pour faciliter le debug.

Organisation typique

  • *.c : implémentations
  • libft.h : prototypes + types
  • Makefile : build de la librairie via ar

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.