An open API service indexing awesome lists of open source software.

https://github.com/semx2a/libft

Recoding some of the libc functions
https://github.com/semx2a/libft

c libc library reverse-engineering

Last synced: 8 months ago
JSON representation

Recoding some of the libc functions

Awesome Lists containing this project

README

          

# Libft - Your Own C Library

## Summary

Libft is a comprehensive C library that I developed as a student project. It includes a set of standard libc functions and additional utility functions. The project aims to provide a robust foundation for future C programming endeavors by ensuring a deep understanding of these essential functions and facilitating their reuse.

## Project Structure

The repository is organized with the following structure:

- `Makefile`: Automation script for compilation and project management.
- `inc/libft.h`: Header file containing function prototypes and necessary definitions.
- `src/ft_*.c`: Source files implementing various functions.

## Features

### Part 1 - Functions from the libc

The library includes meticulously crafted versions of standard libc functions such as `toupper`, `tolower`, `strchr`, `strncmp`, and more. Each function has the same prototype and behavior as its libc counterpart.

### Part 2 - Additional Functions

In addition to standard libc functions, the library offers extra utility functions like `ft_substr`, `ft_strjoin`, `ft_strtrim`, `ft_split`, `ft_itoa`, and more. These functions enhance the versatility of the library for various programming tasks.

### Bonus Part - Linked List Operations

For a more advanced touch, the library includes functions for working with linked lists. This bonus section adds functionality like creating a new list element (`ft_lstnew`), adding elements to the front (`ft_lstadd_front`), finding the size of the list (`ft_lstsize`), and more.

## Project Completion

The project is considered complete as it adheres to the following guidelines:

- All functions have been implemented according to specifications.
- Code follows the `42 School` Norm for C programming.
- Memory management is efficient, avoiding memory leaks.
- A Makefile automates the compilation process.

## Acquired Skills

Throughout the development of Libft, I have gained proficiency in the following areas:

- **C Programming:** Enhanced skills in writing efficient and well-structured C code.
- **Algorithmic Thinking:** Developed algorithms for various functions, ensuring optimal performance.
- **Memory Management:** Mastered dynamic memory allocation and deallocation.
- **Makefile Usage:** Created a Makefile for project compilation and management.
- **Git Version Control:** Managed project versions and collaborated through Git repositories.