Welkom,
Dit project is mijn persoonlijke implementatie van een selectie uit de C Standard Library functies — opgebouwd vanaf nul, in de terminal, met alleen Vim, en met de focus op begrip, geheugencontrole en veiligheid.
Libft is een individueel project bij Codam/42 waarbij je een eigen versie moet schrijven van veelgebruikte functies uit de C-standaardbibliotheek. Denk aan functies voor strings, geheugen, conversie en meer.
Deze library vormt een basis voor latere, complexere projecten zoals get_next_line
, ft_printf
en uiteindelijk zelfs een shell of webserver.
- ✅ Begrijpen hoe C écht werkt, op laag niveau
- ✅ Leren omgaan met geheugenbeheer, pointers en allocatie
- ✅ Werken vanuit de command line en met Vim
- ✅ Bouwen aan robuuste, veilige en herbruikbare code
- ✅ Alles zelf doen: testen, debuggen, en optimaliseren
- ✅ Mijn eigen tools ontwikkelen voor pentesting en automatisering
Volg deze stappen:
# Project clonen
git clone https://github.com/<jouw-gebruikersnaam>/libft_practice.git && cd libft_practice/
# Library bouwen
make
# Bonus (linked lists)
make bonus
# Compileer je eigen testbestand met de library
clang main.c libft.a
# Run je programma
./a.out
# Alles opruimen
make fclean
Alle functies zijn standalone te testen met een eigen main.c
.
Ik schrijf testbestanden per functie in de tests/
map, en compileer zoals:
gcc -Wall -Wextra -Werror src/ft_strlen.c tests/main_strlen.c -o test_strlen
---
## 🧩 Library Overzicht (voor mezelf en toekomstige devs)
| C Library | Libft Functie | Beschrijving |
|----------|----------------|---------------|
| `<ctype.h>` | `ft_isalpha`, `ft_isdigit`, ... | Karakter checks |
| `<string.h>` | `ft_memset`, `ft_strchr`, ... | Geheugen en stringbewerking |
| `<stdlib.h>` | `ft_atoi`, `ft_calloc`, ... | Conversie en allocatie |
| Niet-standaard | `ft_split`, `ft_itoa`, `ft_strtrim`, ... | Extra functies voor reusability |
| Bonus | `ft_lst*` | Linked list manipulatie |
| Persoonlijk | `ft_str_replace`, `ft_uitoa_base`, ... | Mijn eigen tools voor future projects |
---
## 🔒 Waarom dit project belangrijk is voor mijn toekomst
- Het leert me **C begrijpen
- Het dwingt me na te denken over **buffer overflows**, **null terminators**, en **pointer safety**
- Het vormt de technische basis voor toekomstige projecten zoals exploit development, tool building en cybersecurity advies
---
## 🚧 Status
Ik werk elke week aan dit project. Nieuwe functies, testcases en optimalisaties worden regelmatig toegevoegd.
---
## 📜 Licentie
Dit project valt onder de GNU General Public License v3.0 – zie het LICENSE-bestand voor details.
---