https://github.com/f-corvaro/libft
"A solid foundation for system programming in C."
https://github.com/f-corvaro/libft
125 42project 42rome 42school c cprogramming libft makefile
Last synced: 3 months ago
JSON representation
"A solid foundation for system programming in C."
- Host: GitHub
- URL: https://github.com/f-corvaro/libft
- Owner: f-corvaro
- License: mit
- Created: 2024-02-11T11:30:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-25T09:04:41.000Z (11 months ago)
- Last Synced: 2024-07-26T10:08:57.548Z (10 months ago)
- Topics: 125, 42project, 42rome, 42school, c, cprogramming, libft, makefile
- Language: C
- Homepage: https://github.com/f-corvaro
- Size: 8.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
![]()
"A solid foundation for system programming in C."
Index
Introduction
Folder Structure
Contents Overview
Building the Library
Visual Guide to Running Tests
Evaluation Process
Pre-Submission Testing
Correction Sheet
Moulinette Feedback
Acknowledgments
Developed Skills
Support and Contributions
Author
## Introduction
The journey at 42 Schools begins with this foundational project. It challenges students to reimplement certain standard C library functions, along with other utility functions, and compile them into a static library. This serves as a crucial resource for future projects. Adherence to the Norminette coding standards and passing the Moulinette tests are key aspects of this project, ensuring that both peers and automated systems will evaluate your work.
Explore my complete static C library [here](https://github.com/f-corvaro/my_static_C_library).
This project demands a solid understanding of the C programming language, including data types, loops, conditionals, functions, and memory management. Students must also develop proficiency in debugging, testing, and documentation to ensure their code is reliable and understandable. Mastery of these skills is essential for tackling the complexities of software development and contributes significantly to the success in the Libft project and beyond.
## Folder Structure
```
.
├── 00-libft
│ ├── libft
│ │ ├── ft_atoi.c
│ │ ├── ft_bzero.c
│ │ ├── ft_calloc.c
│ │ ├── ft_isalnum.c
│ │ ├── ft_isalpha.c
│ │ ├── ft_isascii.c
│ │ ├── ft_isdigit.c
│ │ ├── ft_isprint.c
│ │ ├── ft_itoa.c
│ │ ├── ft_lstadd_back.c
│ │ ├── ft_lstadd_front.c
│ │ ├── ft_lstclear.c
│ │ ├── ft_lstdelone.c
│ │ ├── ft_lstiter.c
│ │ ├── ft_lstlast.c
│ │ ├── ft_lstmap.c
│ │ ├── ft_lstnew.c
│ │ ├── ft_lstsize.c
│ │ ├── ft_memchr.c
│ │ ├── ft_memcmp.c
│ │ ├── ft_memcpy.c
│ │ ├── ft_memmove.c
│ │ ├── ft_memset.c
│ │ ├── ft_putchar_fd.c
│ │ ├── ft_putendl_fd.c
│ │ ├── ft_putnbr_fd.c
│ │ ├── ft_putstr_fd.c
│ │ ├── ft_split.c
│ │ ├── ft_strchr.c
│ │ ├── ft_strdup.c
│ │ ├── ft_striteri.c
│ │ ├── ft_strjoin.c
│ │ ├── ft_strlcat.c
│ │ ├── ft_strlcpy.c
│ │ ├── ft_strlen.c
│ │ ├── ft_strmapi.c
│ │ ├── ft_strncmp.c
│ │ ├── ft_strnstr.c
│ │ ├── ft_strrchr.c
│ │ ├── ft_strtrim.c
│ │ ├── ft_substr.c
│ │ ├── ft_tolower.c
│ │ ├── ft_toupper.c
│ │ ├── libft.h
│ │ └── Makefile
```## Contents Overview
This section is divided into four categories:
1. **Libc Functions:** Standard C library functions reimplemented.
2. **Additional Functions:** Useful functions for future projects.
3. **Bonus Functions:** Functions specifically designed for linked list manipulation.
4. **Other Components:** Includes the Makefile and libft.h header file.Compiling the library generates object `.o` files and the static library file `libft.a`.
| Libc Functions | Additional Functions | Bonus Functions | other Components |
| ------------- | ------------- | ------------- | ------------- |
| [ft_atoi.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_atoi.c)| [ft_itoa.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_itoa.c) | [ft_lstadd_back.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstadd_back.c) | [libft.h](https://github.com/f-corvaro/LIBFT/blob/main/libft/libft.h) |
| [ft_bzero.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_bzero.c) | [ft_putchar_fd.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_putchar_fd.c) | [ft_lstadd_front.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstadd_front.c) | [makefile](https://github.com/f-corvaro/LIBFT/blob/main/libft/Makefile) |
| [ft_calloc.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_calloc.c) | [ft_putendl_fd.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_putendl_fd.c) | [ft_lstclear.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstclear.c) |
| [ft_isalnum.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isalnum.c) | [ft_putnbr_fd.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_putnbr_fd.c) | [ft_lstdelone.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstdelone.c) |
| [ft_isalpha.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isalpha.c) | [ft_putstr_fd.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_putstr_fd.c) | [ft_lstiter.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstiter.c) |
| [ft_isascii.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isascii.c) | [ft_split.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_split.c) | [ft_lstlast.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstlast.c) |
| [ft_isdigit.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isdigit.c) | [ft_striteri.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_striteri.c) | [ft_lstmap.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstmap.c) |
| [ft_isprint.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isprint.c) | [ft_strjoin.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strjoin.c) | [ft_lstnew.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstnew.c) |
| [ft_memchr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memchr.c) | [ft_strmapi.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strmapi.c) | [ft_lstsize.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstsize.c) |
| [ft_memcmp.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memcmp.c) | [ft_strtrim.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strtrim.c) |
| [ft_memcpy.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memcpy.c) | [ft_substr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_substr.c) |
| [ft_memmove.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memmove.c) |
| [ft_memset.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memset.c) |
| [ft_strchr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strchr.c) |
| [ft_strdup.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strdup.c) |
| [ft_strlcat.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strlcat.c) |
| [ft_strlcpy.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strlcpy.c) |
| [ft_strlen.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strlen.c) |
| [ft_strncmp.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strncmp.c) |
| [ft_strnstr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strnstr.c) |
| [ft_strrchr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strrchr.c) |
| [ft_tolower.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_tolower.c) |
| [ft_toupper.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_toupper.c) |
## Building the Library
To compile the library, utilize the following command:
```bash
make
```For a detailed list of commands available within the `make` utility, execute:
```bash
make info
```### Visual Guide to Running Tests
## Evaluation Process
### Pre-Submission Testing
To ensure your project is ready for submission and peer reviews, it's recommended to test it using the [Supreme Tester](https://github.com/FranFrau/Supreme-Tester-Libft) provided by [@FranFrau](https://github.com/FranFrau).
### Correction Sheet
For a comprehensive review of what will be checked during evaluation, refer to the correction sheet below:
### Moulinette Feedback
After submission, the Moulinette (an automated grading system) will evaluate your project. You can view the results and feedback here:
## Acknowledgments
- **[@dieremy](https://github.com/dieremy)**: Helped with testing and resolving leaks in functions. Additionally, provided an introduction to the project, explaining various functions and theoretical aspects.
- **[@MirkokriM](https://github.com/MirkokriM)**: Inspired the idea for the GIF.
## Developed Skills
## Support and Contributions
If you find this repository helpful, please consider starring it to show your support. Your support is greatly appreciated!
## Author