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
- Host: GitHub
- URL: https://github.com/semx2a/libft
- Owner: semx2a
- License: mit
- Created: 2021-09-13T15:19:14.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-02-08T16:20:43.000Z (about 2 years ago)
- Last Synced: 2025-02-23T04:44:07.892Z (about 1 year ago)
- Topics: c, libc, library, reverse-engineering
- Language: C
- Homepage:
- Size: 113 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.