Libft: Creando tu propia biblioteca en C
Este proyecto es uno de los primeros pasos prácticos en el mundo de la programación a bajo nivel: desarrollar tu propia biblioteca de funciones en C, tal como se hace en el cursus de 42Madrid. La idea no es solo copiar funciones de libc, sino entender cómo funcionan, replicarlas y aprender buenas prácticas de programación y gestión de memoria.
🌐 ¿De qué va Libft?
Libft consiste en programar funciones básicas que serán la base para proyectos futuros en el cursus. Es una oportunidad para:
-
Familiarizarte con punteros y manejo de memoria
-
Aprender a modularizar código
-
Practicar compilación y creación de bibliotecas estáticas (
libft.a) -
Entender cómo las funciones de C estándar están construidas bajo el capó
En pocas palabras, Libft es tu caja de herramientas personalizada en C.
🧩 Objetivo del proyecto
-
Crear una biblioteca en C con funciones de uso general.
-
Las funciones replicarán comportamientos de
libco complementarán funciones útiles de manejo de strings y memoria. -
Todo debe ser modular, limpio y cumpliendo los estándares de compilación de 42 (
-Wall -Werror -Wextra). -
No se permiten variables globales, y cualquier función auxiliar debe declararse
staticdentro de su archivo correspondiente.
⚙️ Consideraciones técnicas
-
Prohibido usar
libtool; debes usar el comandoarpara generar la librería. -
No entregar archivos innecesarios.
-
Todas las funciones deben seguir los prototipos originales de libc, pero con prefijo
ft_(ej:strlen→ft_strlen).

📝 Parte 1: Replicando funciones de libc
En esta sección, debes recrear funciones de la biblioteca estándar con tus propios implementaciones:
| isalpha | toupper |
| isdigit | tolower |
| isalnum | strchr |
| isascii | strrchr |
| isprint | strncmp |
| strlen | memchr |
| memset | memcmp |
| bzero | strnstr |
| memcpy | atoi |
| memmove | calloc |
| strlcpy | strdup |
| strlcat | — |
Cada función debe comportarse exactamente como su versión original.
📝 Parte 2: Funciones adicionales
Aquí se desarrollan funciones no incluidas en libc o con comportamiento diferente, útiles para manipulación de strings y números:
| ft_substr | ft_strjoin |
| ft_strtrim | ft_split |
| ft_itoa | ft_strmapi |
| ft_striteri | ft_putchar_fd |
| ft_putstr_fd | ft_putendl_fd |
| ft_putnbr_fd | — |
Estas funciones te enseñan a manejar memoria dinámicamente, manipular strings y escribir utilidades que harán tu código más modular.
🌟 Bonus: Listas enlazadas
Una vez que domines strings y memoria, es hora de pasar a listas enlazadas:
-
content: guarda cualquier tipo de información (
void*) -
next: apunta al siguiente nodo o NULL si es el último
Funciones a implementar para gestionar listas fácilmente:
| ft_lstnew | ft_lstadd_front |
| ft_lstsize | ft_lstlast |
| ft_lstadd_back | ft_lstdelone |
| ft_lstclear | ft_lstiter |
| ft_lstmap | — |
Aprender listas es clave para estructuras de datos más complejas que verás más adelante.
🚀 Proyecto y entrega
-
Se entrega un Makefile que compila la librería estática
libft.a -
Incluye todas las funciones desarrolladas en el proyecto
-
El proyecto se realiza cumpliendo todos los requisitos del cursus
⚠️Importante
Este proyecto fue adaptado y reorganizado: al tratarse de una librería, he modificado su estructura separando las funciones por categorías para una mejor organización. Además, he incorporado las funciones get_next_line y ft_printf —dos proyectos adicionales del cursus de 42Madrid— con el objetivo de facilitar su uso y hacer más cómoda la integración de la librería en futuros proyectos.
💻 Puedes ver el código completo en GitHub.
🏁 Conclusión
Libft es mucho más que un simple ejercicio de C. Te enseña a:
-
Comprender cómo funciona la biblioteca estándar
-
Manejar memoria y punteros con responsabilidad
-
Modularizar y estructurar código
-
Crear tu propia caja de herramientas reutilizable
Perfecto para consolidar bases de programación en C antes de lanzarte a proyectos más complejos en 42Madrid 😄

- Date: 2022-09-17
- Categories: C - Desarrollo
- Código Fuente goldcod3/Libft