lp177
~/lp177 $ ./libftC · Makelibft

libft

Réécriture en C de fonctions de la libc, premier projet de l’école 42

Projet d'école (42)décembre 2014CMake

Code source

Bibliothèque statique libft.a écrite à l’école 42 fin 2014 : réécriture de fonctions de la libc (mémoire, chaînes, conversions), fonctions utilitaires, listes chaînées et get_next_line. Elle a servi de base aux projets suivants, dont ft_minishell.

But du projet

Premier projet du cursus de l’école 42 : recoder soi-même une partie de la bibliothèque standard C, puis l’enrichir pour en faire sa propre boîte à outils, réutilisée dans les projets suivants. L’exercice porte sur la gestion manuelle de la mémoire, les pointeurs, les chaînes terminées par \0 et la construction d’une bibliothèque statique avec un Makefile, dans le respect de la Norme de l’école.

Contenu

  • Fonctions de la libc : ft_memset, ft_bzero, ft_memcpy, ft_memccpy, ft_memmove, ft_memchr, ft_memcmp, ft_strlen, ft_strdup, ft_strcpy, ft_strcat, ft_strlcat, ft_strchr, ft_strstr, ft_strcmp, ft_atoi, ft_isalpha, ft_toupper… et leurs variantes n.
  • Fonctions complémentaires : ft_memalloc, ft_strnew, ft_strsub, ft_strjoin, ft_strtrim, ft_strsplit, ft_itoa, ft_strmap, ft_striter, affichage avec ft_putstr, ft_putnbr et leurs versions _fd.
  • Listes chaînées : ft_lstnew, ft_lstadd, ft_lstdel, ft_lstiter, ft_lstmap, ft_lstpush.
  • Ajouts personnels : ft_strreplace, ft_swap, ft_nbrlen, ft_unsigned_itoa, écriture sur la sortie d’erreur, une liste de chaînes (t_str) et get_next_line, qui lit un descripteur de fichier ligne par ligne avec un tampon de 1024 octets.

Compilation

make        # produit libft.a (-Wall -Wextra -Werror)
make clean  # supprime les .o
make fclean # supprime aussi libft.a
make re

Le dépôt contient aussi des programmes de test (main1.z à main3.z, lancés avec make mn N=1) et un dossier unit_test, écrits pour macOS. get_next_line.c est présent mais n’est pas compilé dans libft.a par le Makefile.