Skip to content
/ libft Public

[documented code / -pedantic -std=c89] - Libft project aims to recode some useful functions from libc as well as new functions of my choice.

Notifications You must be signed in to change notification settings

clemedon/libft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LIBFT 42

Summary

First project of 42Paris aims to create its own standard library based on libc by creating certain existing and non-existing functions from scratch. This library is also intended to be used and enriched with the functions of our choice throughout the curriculum.

"It will contain a lot of general purpose functions your programs will rely upon." - Subject

External functions: malloc, free, write

Code written in accordance with 42 C coding style, ANSI C89 compliant and entirely documented with docstrings.


I chose not to protect the functions from NULL pointers passed to them as a parameter, indeed I prefer to let an explicit SEGV happen rather than obscure the problem behind a return (NULL); making it more tedious to debug from a superior layer of abstraction.

This choice is also observable in the libc. For example STRLEN(3) implementation from <string.h> will crash a program that tries to pass it a NULL string instead of returning NULL as it would if it was protected.

Usage

Compile the library with a simple make -j then add #include "libft.h" to your project and compile it with these additional flags:

-I <path_to_libft_include_dir>
-L <path_to_libft_dir>
-l ft

Makefile rules

  • make -- compiles get_next_line.
  • make clean -- deletes object files.
  • make fclean -- deletes object files and get_next_line.
  • make re -- fclean + make.

Tester

Tools

  • sanitizer: -fsanitize=address

Add -g flag when compiling with -fsanitize=address to print errors line numbers instead of addresses in hexadecimal.

About

[documented code / -pedantic -std=c89] - Libft project aims to recode some useful functions from libc as well as new functions of my choice.

Topics

Resources

Stars

Watchers

Forks