Partie Obligatoire - Gregory-Marquiset/gm_libft GitHub Wiki
Fonctions Obligatoires de la Libft
Cette section couvre les fonctions obligatoires de la bibliothèque Libft. Chaque fonction est décrite en détail pour fournir une compréhension claire de son utilité, de sa logique, et de son contexte d'utilisation.
🔗 Gestion des chaînes
ft_strlen
- Prototype :
size_t ft_strlen(const char *s);
-
But de la fonction : La fonction
ft_strlen
calcule la longueur de la chaîne de caractères pointée pars
, en excluant le caractère nul terminal (\0
). -
Contexte d'utilisation : Utile pour déterminer la taille d'une chaîne de caractères, par exemple lors de l'allocation dynamique de mémoire ou de la manipulation de chaînes.
-
Logique du code :
- La fonction initialise un compteur à zéro, puis parcourt chaque caractère de la chaîne jusqu'au caractère nul terminal, en incrémentant le compteur à chaque itération.
- Elle retourne ensuite la valeur du compteur, représentant la longueur de la chaîne.
- Lien vers la documentation officielle : strlen(3) — Linux manual page
ft_strdup
- Prototype :
char *ft_strdup(const char *s1);
-
But de la fonction : La fonction
ft_strdup
alloue suffisamment de mémoire pour créer une copie de la chaînes1
, effectue la copie, et retourne un pointeur vers cette nouvelle chaîne. -
Contexte d'utilisation : Utile lorsqu'une duplication de chaîne est nécessaire, notamment pour éviter des modifications involontaires de la chaîne originale.
-
Logique du code :
- La fonction commence par déterminer la longueur de
s1
en utilisantft_strlen
. - Ensuite, elle alloue de la mémoire pour la nouvelle chaîne, incluant l'espace pour le caractère nul terminal.
- Si l'allocation réussit, elle copie chaque caractère de
s1
dans la nouvelle chaîne et ajoute le caractère nul terminal à la fin. - Enfin, elle retourne le pointeur vers la nouvelle chaîne.
- Lien vers la documentation officielle : strdup(3) — Linux manual page
ft_strjoin
- Prototype :
char *ft_strjoin(const char *s1, const char *s2);
-
But de la fonction : La fonction
ft_strjoin
alloue et retourne une nouvelle chaîne, résultat de la concaténation des1
ets2
. -
Contexte d'utilisation : Utile pour combiner deux chaînes en une seule, par exemple lors de la construction de chemins de fichiers ou de messages.
-
Logique du code :
- La fonction calcule d'abord la longueur totale nécessaire en additionnant les longueurs de
s1
ets2
, plus un octet pour le caractère nul terminal. - Elle alloue ensuite la mémoire correspondante.
- Si l'allocation réussit, elle copie
s1
dans la nouvelle chaîne, puis ajoutes2
à la suite. - Enfin, elle ajoute le caractère nul terminal et retourne le pointeur vers la nouvelle chaîne.
- Lien vers la documentation officielle : strcat(3) — Linux manual page
ft_substr
- Prototype :
char *ft_substr(const char *s, unsigned int start, size_t len);
-
But de la fonction : La fonction
ft_substr
alloue et retourne une sous-chaîne de la chaînes
, commençant à l'indexstart
et de longueur maximalelen
. -
Contexte d'utilisation : Utile pour extraire une portion spécifique d'une chaîne, comme lors du traitement de sous-chaînes ou de l'analyse de texte.
-
Logique du code :
- La fonction vérifie d'abord si
s
est non nul. - Ensuite, elle détermine la longueur de
s
et ajustestart
etlen
si nécessaire pour éviter des dépassements. - Elle alloue ensuite la mémoire pour la sous-chaîne, copie les caractères appropriés de
s
à partir destart
jusqu'àstart + len
, ajoute le caractère nul terminal, et retourne le pointeur vers la nouvelle sous-chaîne.
- Lien vers la documentation officielle : strncpy(3) — Linux manual page
ft_strtrim
- Prototype :
char *ft_strtrim(const char *s1, const char *set);
-
But de la fonction : La fonction
ft_strtrim
alloue et retourne une copie des1
avec les caractères spécifiés dansset
supprimés du début et de la fin de la chaîne. -
Contexte d'utilisation : Utile pour nettoyer des chaînes en supprimant des caractères indésirables, tels que des espaces ou des symboles spécifiques, en tête et en queue de chaîne.
-
Logique du code :
- La fonction détermine d'abord les positions de début et de fin où les caractères ne font pas partie de
set
. - Ensuite, elle alloue de la mémoire pour la nouvelle chaîne correspondant à cette section.
- Elle copie les caractères de
s1
entre ces positions dans la nouvelle chaîne, ajoute le caractère nul terminal, et retourne le pointeur vers la chaîne résultante.
- Lien vers la documentation officielle : strtrim — 42cursus Guide
ft_strchr
- Prototype :
char *ft_strchr(const char *s, int c);
-
But de la fonction : La fonction
ft_strchr
localise la première occurrence du caractèrec
dans la chaîne pointée pars
. -
Contexte d'utilisation : Utile pour rechercher un caractère spécifique dans une chaîne, par exemple pour analyser ou diviser des chaînes en fonction de délimiteurs.
-
Logique du code :
- La fonction parcourt la chaîne
s
caractère par caractère. - Lorsqu'elle trouve le caractère
c
, elle retourne un pointeur vers cette position dans la chaîne. - Si
c
est le caractère nul (\0
), la fonction retourne un pointeur vers la fin de la chaîne. - Si
c
n'est pas trouvé, elle retourneNULL
.
- Lien vers la documentation officielle : strchr(3) — Linux manual page
ft_strrchr
- Prototype :
char *ft_strrchr(const char *s, int c);
-
But de la fonction : La fonction
ft_strrchr
recherche la dernière occurrence du caractèrec
dans la chaîne de caractèress
. Si le caractère est trouvé, elle renvoie un pointeur vers cette position dans la chaîne ; sinon, elle renvoieNULL
. -
Contexte d'utilisation :
ft_strrchr
est utile lorsque vous devez localiser la dernière occurrence d'un caractère spécifique dans une chaîne, par exemple pour extraire l'extension d'un nom de fichier en recherchant le dernier point (.
). -
Logique du code :
- Parcourir la chaîne
s
jusqu'à la fin pour déterminer sa longueur. - Revenir en arrière depuis la fin de la chaîne, en comparant chaque caractère à
c
. - Si une correspondance est trouvée, retourner un pointeur vers cette position.
- Si le début de la chaîne est atteint sans trouver
c
, retournerNULL
.
- Lien vers la documentation officielle : strrchr(3) - Linux manual page
ft_strncmp
- Prototype :
int ft_strncmp(const char *s1, const char *s2, size_t n);
-
But de la fonction :
ft_strncmp
compare lexicographiquement jusqu'àn
caractères des chaîness1
ets2
. Elle renvoie un entier indiquant la relation entre les deux chaînes : -
Un résultat négatif si
s1
est inférieure às2
. -
Zéro si
s1
est égale às2
. -
Un résultat positif si
s1
est supérieure às2
. -
Contexte d'utilisation : Cette fonction est utile pour comparer des chaînes jusqu'à un certain nombre de caractères, par exemple pour vérifier des préfixes ou lors de tris lexicographiques limités.
-
Logique du code :
- Parcourir les deux chaînes simultanément, caractère par caractère, jusqu'à atteindre
n
caractères ou la fin de l'une des chaînes. - Comparer les caractères correspondants :
- Si une différence est trouvée, retourner la différence entre les valeurs des caractères.
- Si les caractères sont identiques, continuer la comparaison.
- Si aucune différence n'est trouvée après
n
caractères, retourner 0.
- Lien vers la documentation officielle : strncmp(3) - Linux manual page
ft_strnstr
- Prototype :
char *ft_strnstr(const char *haystack, const char *needle, size_t len);
-
But de la fonction :
ft_strnstr
recherche la première occurrence de la sous-chaîneneedle
dans la chaînehaystack
, en limitant la recherche auxlen
premiers caractères dehaystack
. Sineedle
est une chaîne vide,haystack
est retournée ; sineedle
n'est pas trouvée,NULL
est retourné. -
Contexte d'utilisation : Cette fonction est utile pour rechercher une sous-chaîne dans une portion spécifique d'une chaîne plus grande, par exemple pour analyser des segments de texte ou des buffers avec des limites définies.
-
Logique du code :
- Si
needle
est vide, retournerhaystack
. - Parcourir
haystack
jusqu'àlen
caractères :- Pour chaque position, vérifier si les caractères suivants correspondent à
needle
. - Si une correspondance complète est trouvée, retourner un pointeur vers le début de cette occurrence dans
haystack
.
- Pour chaque position, vérifier si les caractères suivants correspondent à
- Si aucune correspondance n'est trouvée après avoir parcouru jusqu'à
len
caractères, retournerNULL
.
- Lien vers la documentation officielle : strnstr(3) - Linux manual page
ft_strmapi
- Prototype :
char *ft_strmapi(char const *s, char (*f)(unsigned int, char));
-
But de la fonction :
ft_strmapi
applique une fonctionf
à chaque caractère de la chaînes
pour créer une nouvelle chaîne résultant des applications successives def
. La fonctionf
reçoit en arguments l'index du caractère et le caractère lui-même. -
Contexte d'utilisation : Cette fonction est utile pour transformer une chaîne en appliquant une opération spécifique à chaque caractère, comme changer la casse des lettres ou effectuer des substitutions basées sur la position.
-
Logique du code :
- Allouer de la mémoire pour la nouvelle chaîne, de longueur égale à
s
. - Parcourir chaque caractère de
s
:- Appliquer la fonction
f
en passant l'index et le caractère actuel. - Stocker le résultat dans la nouvelle chaîne.
- Appliquer la fonction
- Ajouter un caractère nul à la fin de la nouvelle chaîne.
- Retourner la nouvelle chaîne.
- Lien vers la documentation officielle : strmapi(3) - Linux manual page
ft_striteri
- Prototype :
void ft_striteri(char *s, void (*f)(unsigned int, char *));
-
But de la fonction :
ft_striteri
permet d'appliquer une fonction spécifique à chaque caractère d'une chaîne, en fournissant l'index du caractère et son adresse. Cela est utile pour modifier ou analyser chaque caractère en fonction de sa position dans la chaîne. -
Contexte d'utilisation : Cette fonction est particulièrement utile lorsque vous devez transformer ou analyser une chaîne de caractères en tenant compte de la position de chaque caractère. Par exemple, vous pouvez l'utiliser pour convertir les lettres en majuscules à des positions paires et en minuscules à des positions impaires.
-
Logique du code :
- La fonction commence par vérifier si la chaîne
s
et le pointeur de fonctionf
ne sont pas nuls. Si l'un d'eux est nul, la fonction retourne immédiatement, car il n'y a rien à traiter. - Une variable
i
de typeunsigned int
est initialisée à 0. Cette variable servira d'index pour parcourir la chaîne. - La fonction entre dans une boucle qui continue tant que le caractère actuel de la chaîne n'est pas le caractère nul
\0
, indiquant la fin de la chaîne. - À chaque itération, la fonction
f
est appelée avec deux arguments : l'index actueli
et l'adresse du caractère correspondant dans la chaîne (&s[i]
). Cela permet à la fonctionf
de modifier le caractère en place, si nécessaire. - Après l'appel de la fonction
f
, l'indexi
est incrémenté pour passer au caractère suivant de la chaîne. - La boucle continue jusqu'à ce que tous les caractères de la chaîne aient été traités, c'est-à-dire jusqu'à ce que le caractère nul
\0
soit rencontré.
- Lien vers la documentation officielle : striteri — 42cursus Guide
🔄 Conversion
ft_atoi
-
Prototype :
int ft_atoi(const char *str);
-
But de la fonction : La fonction
ft_atoi
convertit une chaîne de caractères, représentée parstr
, en une valeur entière de typeint
. Elle ignore les espaces blancs initiaux, gère un signe facultatif ('+' ou '-') et convertit les chiffres consécutifs en une valeur numérique jusqu'à rencontrer un caractère non numérique. -
Contexte d'utilisation :
ft_atoi
est utile pour interpréter des nombres entiers présents sous forme de chaînes de caractères, par exemple lors de la lecture d'entrées utilisateur ou de données textuelles nécessitant une conversion en entiers pour des calculs ultérieurs. -
Logique du code :
- Ignorer les espaces blancs initiaux : Parcourir la chaîne jusqu'à ce que le premier caractère non blanc soit trouvé.
- Déterminer le signe : Vérifier si le caractère suivant est un signe '+' ou '-'. Si c'est '-', définir le signe du résultat comme négatif.
- Conversion des chiffres : Parcourir les caractères suivants tant qu'ils sont numériques, en convertissant chaque caractère en sa valeur numérique correspondante et en l'ajoutant au résultat en cours, tout en gérant la position décimale appropriée.
- Retourner le résultat : Appliquer le signe déterminé précédemment au résultat numérique et le retourner.
- Lien vers la documentation officielle : atoi(3) — Linux manual page
ft_itoa
-
Prototype :
char *ft_itoa(int n);
-
But de la fonction : La fonction
ft_itoa
convertit une valeur entièren
en une chaîne de caractères allouée dynamiquement, représentant le nombre en notation décimale. Elle gère les nombres négatifs en ajoutant un signe '-' au début de la chaîne résultante. -
Contexte d'utilisation :
ft_itoa
est utile lorsque vous devez convertir des entiers en chaînes de caractères, par exemple pour afficher des nombres à l'écran, les écrire dans des fichiers texte ou les transmettre via des protocoles textuels. -
Logique du code :
- Déterminer la longueur de la chaîne : Calculer le nombre de chiffres dans
n
, en incluant un caractère supplémentaire pour le signe sin
est négatif. - Allocation de mémoire : Allouer suffisamment de mémoire pour stocker la chaîne résultante, y compris le caractère nul terminal.
- Remplissage de la chaîne : Remplir la chaîne en partant de la fin :
- Si
n
est négatif, convertirn
en sa valeur absolue pour simplifier le traitement. - Extraire chaque chiffre en utilisant le modulo 10 et le convertir en caractère en ajoutant '0'.
- Placer le caractère correspondant dans la position appropriée de la chaîne.
- Diviser
n
par 10 et répéter jusqu'à ce que tous les chiffres soient traités.
- Si
- Ajouter le signe : Si le nombre était négatif, ajouter un signe '-' au début de la chaîne.
- Terminer la chaîne : Ajouter le caractère nul terminal pour marquer la fin de la chaîne.
- Retourner la chaîne : Retourner le pointeur vers la chaîne nouvellement créée.
- Lien vers la documentation officielle : itoa(3) — C++ reference
🔍 Tests de caractères
ft_isalpha
-
Prototype :
int ft_isalpha(int c);
-
But de la fonction : La fonction
ft_isalpha
vérifie si le caractère passé en argument est une lettre alphabétique, qu'elle soit majuscule ou minuscule. -
Contexte d'utilisation : Utile pour déterminer si un caractère est une lettre, par exemple lors de l'analyse de chaînes de texte où la distinction entre lettres et autres caractères est nécessaire.
-
Logique du code :
- Vérifier si la valeur de
c
correspond aux codes ASCII des lettres majuscules (65 à 90) ou minuscules (97 à 122). - Retourner une valeur non nulle (par exemple, 1) si
c
est une lettre, sinon retourner 0.
- Lien vers la documentation officielle : isalpha(3) — Linux manual page
ft_isdigit
-
Prototype :
int ft_isdigit(int c);
-
But de la fonction : La fonction
ft_isdigit
vérifie si le caractère passé en argument est un chiffre décimal (de '0' à '9'). -
Contexte d'utilisation : Utile pour identifier les caractères numériques dans une chaîne, par exemple lors de la validation d'entrées utilisateur ou de l'analyse de données numériques.
-
Logique du code :
- Vérifier si la valeur de
c
correspond aux codes ASCII des chiffres (48 à 57). - Retourner une valeur non nulle si
c
est un chiffre, sinon retourner 0.
- Lien vers la documentation officielle : isdigit(3) — Linux manual page
ft_isalnum
-
Prototype :
int ft_isalnum(int c);
-
But de la fonction : La fonction
ft_isalnum
vérifie si le caractère passé en argument est soit une lettre alphabétique, soit un chiffre décimal. -
Contexte d'utilisation : Utile pour déterminer si un caractère est alphanumérique, par exemple lors de la validation de noms d'utilisateur ou d'identifiants qui doivent contenir uniquement des lettres et des chiffres.
-
Logique du code :
- Vérifier si
c
est une lettre en utilisantft_isalpha
. - Si ce n'est pas une lettre, vérifier si
c
est un chiffre en utilisantft_isdigit
. - Retourner une valeur non nulle si
c
est alphanumérique, sinon retourner 0.
- Lien vers la documentation officielle : isalnum(3) — Linux manual page
ft_isascii
-
Prototype :
int ft_isascii(int c);
-
But de la fonction : La fonction
ft_isascii
vérifie si le caractère passé en argument appartient au jeu de caractères ASCII standard (valeurs de 0 à 127). -
Contexte d'utilisation : Utile pour s'assurer qu'un caractère est bien un caractère ASCII standard, notamment lors de traitements où seuls ces caractères sont acceptés.
-
Logique du code :
- Vérifier si la valeur de
c
est comprise entre 0 et 127 inclus. - Retourner une valeur non nulle si
c
est un caractère ASCII, sinon retourner 0.
- Lien vers la documentation officielle : isascii(3) — Linux manual page
ft_isprint
-
Prototype :
int ft_isprint(int c);
-
But de la fonction : La fonction
ft_isprint
vérifie si le caractère passé en argument est un caractère imprimable, y compris l'espace. -
Contexte d'utilisation : Utile pour déterminer si un caractère peut être affiché, par exemple lors de l'affichage de chaînes où les caractères non imprimables doivent être traités différemment.
-
Logique du code :
- Vérifier si la valeur de
c
est comprise entre 32 (espace) et 126 (tilde) inclus, correspondant aux caractères imprimables en ASCII. - Retourner une valeur non nulle si
c
est un caractère imprimable, sinon retourner 0.
- Lien vers la documentation officielle : isprint(3) — Linux manual page
🧠 Manipulation de la mémoire
ft_memset
-
Prototype :
void *ft_memset(void *b, int c, size_t len);
-
But de la fonction : La fonction
ft_memset
remplit leslen
premiers octets de la zone mémoire pointée parb
avec la valeur constantec
, convertie enunsigned char
. -
Contexte d'utilisation : Utile pour initialiser une zone mémoire avec une valeur spécifique, comme la mise à zéro d'un bloc de mémoire après une allocation dynamique.
-
Logique du code :
- Convertir le pointeur
b
enunsigned char *
pour une manipulation byte par byte. - Parcourir les
len
octets et assigner la valeurc
à chaque position. - Retourner le pointeur initial
b
.
- Lien vers la documentation officielle : memset(3) — Linux manual page
ft_memcpy
-
Prototype :
void *ft_memcpy(void *dst, const void *src, size_t n);
-
But de la fonction : La fonction
ft_memcpy
copien
octets de la zone mémoiresrc
vers la zone mémoiredst
. Les zones ne doivent pas se chevaucher. -
Contexte d'utilisation : Utile pour copier des blocs de mémoire lorsque les zones source et destination sont distinctes, comme lors de la duplication de structures ou de buffers.
-
Logique du code :
- Convertir les pointeurs
dst
etsrc
enunsigned char *
pour une manipulation byte par byte. - Copier les
n
octets desrc
versdst
. - Retourner le pointeur
dst
.
- Lien vers la documentation officielle : memcpy(3) — Linux manual page
ft_memmove
-
Prototype :
void *ft_memmove(void *dst, const void *src, size_t len);
-
But de la fonction : La fonction
ft_memmove
copielen
octets desrc
versdst
. Contrairement àft_memcpy
, elle gère correctement le chevauchement des zones mémoire. -
Contexte d'utilisation : Préférable à
ft_memcpy
lorsque les zones source et destination peuvent se chevaucher, comme lors du déplacement de données au sein d'un même buffer. -
Logique du code :
- Si
dst
est avantsrc
, copier les octets de début à fin. - Sinon, copier les octets de fin à début pour éviter l'écrasement des données.
- Retourner le pointeur
dst
.
- Lien vers la documentation officielle : memmove(3) — Linux manual page
ft_memchr
-
Prototype :
void *ft_memchr(const void *s, int c, size_t n);
-
But de la fonction : La fonction
ft_memchr
recherche la première occurrence de l'octetc
(converti enunsigned char
) dans lesn
premiers octets de la zone mémoire pointée pars
. -
Contexte d'utilisation : Utile pour localiser un caractère spécifique dans un bloc de mémoire, comme la recherche d'un délimiteur dans des données binaires.
-
Logique du code :
- Parcourir les
n
octets des
. - Si un octet correspond à
c
, retourner un pointeur vers cet octet. - Si aucune correspondance n'est trouvée, retourner
NULL
.
- Lien vers la documentation officielle : memchr(3) — Linux manual page
ft_memcmp
-
Prototype :
int ft_memcmp(const void *s1, const void *s2, size_t n);
-
But de la fonction : La fonction
ft_memcmp
compare lesn
premiers octets des zones mémoires1
ets2
. -
Contexte d'utilisation : Utile pour déterminer l'ordre lexicographique de blocs de mémoire, comme lors du tri de données binaires.
-
Logique du code :
- Parcourir les
n
octets des deux zones mémoire. - Comparer chaque paire d'octets.
- Retourner la différence entre les premiers octets différents, ou 0 si les
n
octets sont identiques.
- Lien vers la documentation officielle : memcmp(3) — Linux manual page
ft_bzero
-
Prototype :
void ft_bzero(void *s, size_t n);
-
But de la fonction : La fonction
ft_bzero
met à zéro (remplit avec des octets de valeur 0) lesn
premiers octets de la zone mémoire pointée pars
. -
Contexte d'utilisation : Souvent utilisée pour initialiser une zone mémoire allouée dynamiquement afin d'éviter des valeurs indéfinies.
-
Logique du code :
- Appeler
ft_memset
avecc
égal à 0 pour remplir la zone mémoire avec des zéros.
- Lien vers la documentation officielle : bzero(3) — Linux manual page
ft_calloc
-
Prototype :
void *ft_calloc(size_t count, size_t size);
-
But de la fonction : La fonction
ft_calloc
alloue de la mémoire pour un tableau decount
éléments desize
octets chacun et initialise tous les octets à zéro. -
Contexte d'utilisation : Utile pour allouer de la mémoire pour des structures de données tout en garantissant que la mémoire est initialisée à zéro, évitant ainsi des comportements indéfinis.
-
Logique du code :
- Calculer la taille totale nécessaire en multipliant
count
parsize
. - Utiliser
malloc
pour allouer la mémoire. - Si l'allocation réussit, utiliser
ft_bzero
pour initialiser la mémoire à zéro. - Retourner le pointer.
- Lien vers la documentation officielle : calloc — 42cursus Guide
📝 Manipulation de fichiers
ft_putchar_fd
-
Prototype :
void ft_putchar_fd(char c, int fd);
-
But de la fonction : La fonction
ft_putchar_fd
écrit le caractèrec
sur le descripteur de fichier spécifié parfd
. -
Contexte d'utilisation : Utile pour envoyer des caractères vers différents descripteurs de fichiers, tels que la sortie standard, les fichiers ou les sockets, en fonction de la valeur de
fd
. -
Logique du code :
- Utiliser l'appel système
write
pour écrire le caractèrec
sur le descripteur de fichierfd
. - Le premier argument de
write
est le descripteur de fichier, le second est l'adresse du caractère, et le troisième est la taille à écrire (1 octet).
- Lien vers la documentation officielle : write(2) — Linux manual page
ft_putstr_fd
-
Prototype :
void ft_putstr_fd(char *s, int fd);
-
But de la fonction : La fonction
ft_putstr_fd
écrit la chaîne de caractèress
sur le descripteur de fichier spécifié parfd
. -
Contexte d'utilisation : Permet d'envoyer des chaînes de caractères vers différents descripteurs de fichiers, facilitant ainsi l'affichage ou l'enregistrement de textes.
-
Logique du code :
- Vérifier que la chaîne
s
n'est pas nulle. - Utiliser l'appel système
write
pour écrire la chaînes
sur le descripteur de fichierfd
. - La longueur de la chaîne peut être déterminée à l'aide de
ft_strlen(s)
.
- Lien vers la documentation officielle : write(2) — Linux manual page
ft_putendl_fd
-
Prototype :
void ft_putendl_fd(char *s, int fd);
-
But de la fonction : La fonction
ft_putendl_fd
écrit la chaîne de caractèress
suivie d'un saut de ligne (\n
) sur le descripteur de fichier spécifié parfd
. -
Contexte d'utilisation : Pratique pour écrire des lignes complètes de texte avec un retour à la ligne, par exemple lors de la génération de fichiers texte ou de l'affichage de messages.
-
Logique du code :
- Vérifier que la chaîne
s
n'est pas nulle. - Utiliser
ft_putstr_fd
pour écrire la chaînes
sur le descripteurfd
. - Utiliser
ft_putchar_fd
pour ajouter un saut de ligne (\n
) sur le descripteurfd
.
- Lien vers la documentation officielle : write(2) — Linux manual page
ft_putnbr_fd
-
Prototype :
void ft_putnbr_fd(int n, int fd);
-
But de la fonction : La fonction
ft_putnbr_fd
écrit le nombre entiern
sous forme de chaîne de caractères sur le descripteur de fichier spécifié parfd
. -
Contexte d'utilisation : Utile pour afficher ou enregistrer des valeurs numériques entières, en les convertissant en chaînes de caractères.
-
Logique du code :
- Gérer le cas où
n
est égal àINT_MIN
en écrivant directement sa valeur, car sa valeur absolue dépasse la plage des entiers positifs. - Si
n
est négatif, écrire le signe '-' et convertirn
en sa valeur absolue. - Si
n
est supérieur ou égal à 10, appeler récursivementft_putnbr_fd
avecn / 10
pour traiter les chiffres supérieurs. - Écrire le dernier chiffre de
n
en utilisantft_putchar_fd
.
- Lien vers la documentation officielle : write(2) — Linux manual page