libft/libft.h
Khaïs COLIN 07704a2d59 ft_putnbr_fd: initial implementation
NOTE: When compiling with gcc and checking the produced library with nm,
we get the following output:

ft_putnbr_fd.o:
                 U ft_putchar_fd
0000000000000000 T ft_putnbr_fd
                 U __stack_chk_fail
                 U write

As you can see, there is an undefined function that is used in this
object file, "__stack_chk_fail". This function is not allowed by the
subject! Only write is allowed!

I am told that the moulinette compiles with clang, which does not
exhibit this behaviour. However, it may be that gcc is used instead,
which may cause my project to fail. (Also, an evaluator may mark me down
for that). I don't want either of those two things to happen, so I will
code another implementation which uses recursion, as this kind of
impelmentation does not seem to cause this behaviour with gcc.

Thanks to tchampio for his help debugging this issue.
2024-10-18 16:31:16 +02:00

66 lines
2.3 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* libft.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: kcolin <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/10/15 10:11:54 by kcolin #+# #+# */
/* Updated: 2024/10/18 15:20:07 by kcolin ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef LIBFT_H
# define LIBFT_H
# include <unistd.h>
int ft_isalpha(int c);
int ft_isdigit(int c);
int ft_isalnum(int c);
int ft_isascii(int c);
int ft_isprint(int c);
size_t ft_strlen(const char *s);
void *ft_memset(void *s, int c, size_t n);
void ft_bzero(void *s, size_t n);
void *ft_memcpy(void *dest, const void *src, size_t n);
void *ft_memmove(void *dest, const void *src, size_t n);
size_t ft_strlcpy(char *dst, const char *src, size_t size);
size_t ft_strlcat(char *dst, const char *src, size_t size);
int ft_toupper(int c);
int ft_tolower(int c);
char *ft_strchr(const char *s, int c);
char *ft_strrchr(const char *s, int c);
int ft_strncmp(const char *s1, const char *s2, size_t n);
void *ft_memchr(const void *s, int c, size_t n);
int ft_memcmp(const void *s1, const void *s2, size_t n);
char *ft_strnstr(const char *big, const char *little, size_t len);
int ft_atoi(const char *nptr);
void *ft_calloc(size_t nmemb, size_t size);
char *ft_strdup(const char *s);
char *ft_substr(char const *s, unsigned int start, size_t len);
char *ft_strjoin(char const *s1, char const *s2);
char *ft_strtrim(char const *s1, char const *set);
char **ft_split(char const *s, char c);
char *ft_itoa(int n);
char *ft_strmapi(char const *s, char (*f)(unsigned int, char));
void ft_striteri(char *s, void (*f)(unsigned int, char*));
void ft_putchar_fd(char c, int fd);
void ft_putstr_fd(char *s, int fd);
void ft_putendl_fd(char *s, int fd);
void ft_putnbr_fd(int n, int fd);
#endif