Skip to content

f-corvaro/LIBFT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"A solid foundation for system programming in C."

subject GitHub code size in bytes Code language count GitHub top language GitHub last commit

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.

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 ft_itoa.c ft_lstadd_back.c libft.h
ft_bzero.c ft_putchar_fd.c ft_lstadd_front.c makefile
ft_calloc.c ft_putendl_fd.c ft_lstclear.c
ft_isalnum.c ft_putnbr_fd.c ft_lstdelone.c
ft_isalpha.c ft_putstr_fd.c ft_lstiter.c
ft_isascii.c ft_split.c ft_lstlast.c
ft_isdigit.c ft_striteri.c ft_lstmap.c
ft_isprint.c ft_strjoin.c ft_lstnew.c
ft_memchr.c ft_strmapi.c ft_lstsize.c
ft_memcmp.c ft_strtrim.c
ft_memcpy.c ft_substr.c
ft_memmove.c
ft_memset.c
ft_strchr.c
ft_strdup.c
ft_strlcat.c
ft_strlcpy.c
ft_strlen.c
ft_strncmp.c
ft_strnstr.c
ft_strrchr.c
ft_tolower.c
ft_toupper.c


Building the Library

To compile the library, utilize the following command:

make

For a detailed list of commands available within the make utility, execute:

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 provided by @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: Helped with testing and resolving leaks in functions. Additionally, provided an introduction to the project, explaining various functions and theoretical aspects.
  • @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

Email Github Linkedin Slack