# Guide

## Guide

- [The End - Thank you everyone !](https://42-cursus.gitbook.io/guide/readme.md)
- [Useful tools](https://42-cursus.gitbook.io/guide/useful-tools.md)
- [Header files](https://42-cursus.gitbook.io/guide/useful-tools/header-files.md): This page will describe some of the concepts used in header files
- [C Structures](https://42-cursus.gitbook.io/guide/useful-tools/c-structures.md): What are C structures
- [Linked Lists (todo)](https://42-cursus.gitbook.io/guide/useful-tools/linked-lists-todo.md)
- [Makefiles](https://42-cursus.gitbook.io/guide/useful-tools/makefiles.md): Since makefiles are some kind of mystic shit, I'll try my best to explain some basics.
- [Switch statement](https://42-cursus.gitbook.io/guide/useful-tools/switch-statement.md): A tool to facilitate complex if ... else if statements.
- [File descriptors (FD)](https://42-cursus.gitbook.io/guide/useful-tools/file-descriptors-fd.md): I'll try to explain what is a file descriptor is since it's used in most projects
- [MiniLibX](https://42-cursus.gitbook.io/guide/minilibx.md)
- [MiniLibX Helper Function](https://42-cursus.gitbook.io/guide/minilibx/minilibx-helper-function.md): This page will showcase some helper functions for the MiniLibX library.
- [MiniLibX Hook Examples](https://42-cursus.gitbook.io/guide/minilibx/minilibx-hook-examples.md): This page will showcase some examples hooks that you can use with MiniLibX.
- [Libft](https://42-cursus.gitbook.io/guide/0-rank-00/libft.md): This project aims to make you code in C a library of usual functions that you will be able to use for your next projects.
- [LIBC functions](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions.md)
- [ft\_isalpha](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_isalpha.md)
- [ft\_isdigit](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_isdigit.md)
- [ft\_isalnum](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_isalnum.md)
- [ft\_isascii](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_isascii.md)
- [ft\_isprint](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_isprint.md)
- [ft\_strlen](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_strlen.md)
- [ft\_memset](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_memset.md)
- [ft\_bzero](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_bzero.md)
- [ft\_memcpy](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_memcpy.md)
- [ft\_memmove](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_memmove.md)
- [ft\_strlcpy](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_strlcpy.md)
- [ft\_strlcat](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_strlcat.md)
- [ft\_toupper](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_toupper.md)
- [ft\_tolower](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_tolower.md)
- [ft\_strchr](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_strchr.md)
- [ft\_strrchr](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_strrchr.md)
- [ft\_strncmp](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_strncmp.md)
- [ft\_memchr](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_memchr.md)
- [ft\_memcmp](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_memcmp.md)
- [ft\_strnstr](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_strnstr.md)
- [ft\_atoi](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_atoi.md)
- [ft\_calloc](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_calloc.md)
- [ft\_strdup](https://42-cursus.gitbook.io/guide/0-rank-00/libft/libc-functions/ft_strdup.md)
- [Additional functions](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions.md)
- [ft\_substr](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_substr.md)
- [ft\_strjoin](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_strjoin.md)
- [ft\_strtrim](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_strtrim.md)
- [ft\_split](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_split.md)
- [ft\_itoa](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_itoa.md)
- [ft\_strmapi](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_strmapi.md)
- [ft\_striteri](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_striteri.md)
- [ft\_putchar\_fd](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_putchar_fd.md)
- [ft\_putstr\_fd](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_putstr_fd.md)
- [ft\_putendl\_fd](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_putendl_fd.md)
- [ft\_putnbr\_fd](https://42-cursus.gitbook.io/guide/0-rank-00/libft/additional-functions/ft_putnbr_fd.md)
- [Bonus functions](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions.md)
- [ft\_lstnew](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstnew.md)
- [ft\_lstadd\_front](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstadd_front.md)
- [ft\_lstsize](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstsize.md)
- [ft\_lstlast](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstlast.md)
- [ft\_lstadd\_back](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstadd_back.md)
- [ft\_lstdelone](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstdelone.md)
- [ft\_lstclear](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstclear.md)
- [ft\_lstiter](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstiter.md)
- [ft\_lstmap](https://42-cursus.gitbook.io/guide/0-rank-00/libft/bonus-functions/ft_lstmap.md)
- [Born2beRoot](https://42-cursus.gitbook.io/guide/1-rank-01/born2beroot.md): The goal of this project is to create a virtual machine using "Virtual Box".
- [What's a virtual machine ?](https://42-cursus.gitbook.io/guide/1-rank-01/born2beroot/whats-a-virtual-machine.md): Some definitions to understand what you're doing
- [Install your virtual machine](https://42-cursus.gitbook.io/guide/1-rank-01/born2beroot/install-your-virtual-machine.md)
- [P2P Evaluation - Questions](https://42-cursus.gitbook.io/guide/1-rank-01/born2beroot/p2p-evaluation-questions.md)
- [ft\_printf](https://42-cursus.gitbook.io/guide/1-rank-01/ft_printf.md): The goal of this project is simple: replicate the printf function.
- [Variadic functions](https://42-cursus.gitbook.io/guide/1-rank-01/ft_printf/variadic-functions.md): This is the new concept that we learn during this project. It is essential to understand it well before moving on.
- [Building the thing](https://42-cursus.gitbook.io/guide/1-rank-01/ft_printf/building-the-thing.md): Now that you have understood the basics and how the function to be replicated works, let's start building your own by following this guide.
- [get\_next\_line](https://42-cursus.gitbook.io/guide/1-rank-01/get_next_line.md): Reading a line from a fd is way too tedious
- [open() & read()](https://42-cursus.gitbook.io/guide/1-rank-01/get_next_line/open-and-read.md)
- [Static variables](https://42-cursus.gitbook.io/guide/1-rank-01/get_next_line/static-variables.md): This is the new concept that we learn during this project. It is essential to understand it well before moving on.
- [Building the thing](https://42-cursus.gitbook.io/guide/1-rank-01/get_next_line/building-the-thing.md)
- [Commented solution](https://42-cursus.gitbook.io/guide/1-rank-01/get_next_line/commented-solution.md): We propose you here one of the solutions that works. However, we recommend you to try not to look at the solution and read what we explained in part 3. Use this part only in case of emergency.
- [so\_long](https://42-cursus.gitbook.io/guide/2-rank-02/so_long.md): The purpose of this project is to build a small 2D video game using MiniLibX and learn a bit about how a simple video game usually works.
- [Understand so\_long](https://42-cursus.gitbook.io/guide/2-rank-02/so_long/understand-so_long.md)
- [Core concepts](https://42-cursus.gitbook.io/guide/2-rank-02/so_long/core-concepts.md): I will describe some of the core concepts of making a simple video game
- [Building the thing](https://42-cursus.gitbook.io/guide/2-rank-02/so_long/building-the-thing.md)
- [pipex](https://42-cursus.gitbook.io/guide/2-rank-02/pipex.md): The purpose of this project is to try and replicate the workings of the shell pipe operator in a C program (this will be useful for minishell)
- [Understand pipex](https://42-cursus.gitbook.io/guide/2-rank-02/pipex/understand-pipex.md)
- [Functions used](https://42-cursus.gitbook.io/guide/2-rank-02/pipex/functions-used.md)
- [Building the thing](https://42-cursus.gitbook.io/guide/2-rank-02/pipex/building-the-thing.md)
- [minitalk](https://42-cursus.gitbook.io/guide/2-rank-02/minitalk.md): The purpose of this project is to code a small data exchange program using UNIX signals. It is an introductory project for the bigger UNIX projects that will appear later on in the cursus.
- [Understand minitalk](https://42-cursus.gitbook.io/guide/2-rank-02/minitalk/understand-minitalk.md): You will have to realize a communication program in the form of a client and a server.
- [Functions used](https://42-cursus.gitbook.io/guide/2-rank-02/minitalk/functions-used.md)
- [Building the thing](https://42-cursus.gitbook.io/guide/2-rank-02/minitalk/building-the-thing.md)
- [push\_swap](https://42-cursus.gitbook.io/guide/2-rank-02/push_swap.md): The project that will make you sort numbers
- [Algorithms](https://42-cursus.gitbook.io/guide/2-rank-02/push_swap/algorithms.md)
- [Building the thing](https://42-cursus.gitbook.io/guide/2-rank-02/push_swap/building-the-thing.md)
- [FdF](https://42-cursus.gitbook.io/guide/2-rank-02/fdf.md): FdF is a project in which we convert a file with a grid of height values into a 3d wireframe using a simple graphics library called MiniLibX.
- [Understand FdF](https://42-cursus.gitbook.io/guide/2-rank-02/fdf/understand-fdf.md)
- [Graphics programming](https://42-cursus.gitbook.io/guide/2-rank-02/fdf/graphics-programming.md): Explanations of certain concepts to reduce confusion during the realization of the project
- [Building the thing](https://42-cursus.gitbook.io/guide/2-rank-02/fdf/building-the-thing.md)
- [Philosophers](https://42-cursus.gitbook.io/guide/3-rank-03/philosophers.md): The purpose of this project is to introduce you to threading and processes, and how to work on shared memory space. You'll discover threads, mutex, semaphores and shared memory
- [Understand Philosophers](https://42-cursus.gitbook.io/guide/3-rank-03/philosophers/understand-philosophers.md)
- [Functions used](https://42-cursus.gitbook.io/guide/3-rank-03/philosophers/functions-used.md)
- [Building the thing](https://42-cursus.gitbook.io/guide/3-rank-03/philosophers/building-the-thing.md)
- [Minishell](https://42-cursus.gitbook.io/guide/3-rank-03/minishell.md): The goal of this project is to create a minimalist shell. You'll learn a lot about file descriptors and processes.
- [Understand Minishell](https://42-cursus.gitbook.io/guide/3-rank-03/minishell/understand-minishell.md)
- [Functions](https://42-cursus.gitbook.io/guide/3-rank-03/minishell/functions.md)
- [Building the thing](https://42-cursus.gitbook.io/guide/3-rank-03/minishell/building-the-thing.md)
- [CPP (00 - 04) (doing)](https://42-cursus.gitbook.io/guide/4-rank-04/cpp-00-04-doing.md)
- [CPP00](https://42-cursus.gitbook.io/guide/4-rank-04/cpp-00-04-doing/cpp00.md)
- [CPP01](https://42-cursus.gitbook.io/guide/4-rank-04/cpp-00-04-doing/cpp01.md)
- [CPP02](https://42-cursus.gitbook.io/guide/4-rank-04/cpp-00-04-doing/cpp02.md)
- [CPP03](https://42-cursus.gitbook.io/guide/4-rank-04/cpp-00-04-doing/cpp03.md)
- [CPP04 (doing)](https://42-cursus.gitbook.io/guide/4-rank-04/cpp-00-04-doing/cpp04-doing.md)
- [NetPractice](https://42-cursus.gitbook.io/guide/4-rank-04/netpractice.md)
- [Theory](https://42-cursus.gitbook.io/guide/4-rank-04/netpractice/theory.md)
- [Level 1 & 2](https://42-cursus.gitbook.io/guide/4-rank-04/netpractice/level-1-and-2.md)
- [MiniRT](https://42-cursus.gitbook.io/guide/4-rank-04/minirt.md)
- [Understand MiniRT](https://42-cursus.gitbook.io/guide/4-rank-04/minirt/understand-minirt.md)
- [Building the thing](https://42-cursus.gitbook.io/guide/4-rank-04/minirt/building-the-thing.md)
- [CPP (05-09) (to-do)](https://42-cursus.gitbook.io/guide/5-rank-05/cpp-05-09-to-do.md)
- [CPP05](https://42-cursus.gitbook.io/guide/5-rank-05/cpp-05-09-to-do/cpp05.md)
- [CPP06 (to-do)](https://42-cursus.gitbook.io/guide/5-rank-05/cpp-05-09-to-do/cpp06-to-do.md)
- [CPP07](https://42-cursus.gitbook.io/guide/5-rank-05/cpp-05-09-to-do/cpp07.md)
- [CPP08 (to-do)](https://42-cursus.gitbook.io/guide/5-rank-05/cpp-05-09-to-do/cpp08-to-do.md)
- [CPP09 (to-do)](https://42-cursus.gitbook.io/guide/5-rank-05/cpp-05-09-to-do/cpp09-to-do.md)
- [Inception (doing)](https://42-cursus.gitbook.io/guide/5-rank-05/inception-doing.md)
- [The basics (Docker, Images, etc...)](https://42-cursus.gitbook.io/guide/5-rank-05/inception-doing/the-basics-docker-images-etc....md)
- [Project Files](https://42-cursus.gitbook.io/guide/5-rank-05/inception-doing/project-files.md)
- [webserv (to-do)](https://42-cursus.gitbook.io/guide/5-rank-05/webserv-to-do.md)
- [ft\_transcendence (to-do)](https://42-cursus.gitbook.io/guide/6-rank-06/ft_transcendence-to-do.md)
- [Team](https://42-cursus.gitbook.io/guide/team.md)
