En C, comment fonctionne strlcat() ?
La fonction ?strlcat()
est une fonction que l'on retrouve dans certaines impl�mentations de la biblioth�que ?string.h
, mais ce n'est pas une fonction standard du C. Pour utiliser cette fonction, il faut inclure cette biblioth�que :
#include <bsd/string.h>
Et compiler avec l'option ?-lbsd
, par exemple :
clang-7 -pthread -lm -lbsd -o main main.c
Voici le prototype :
size_t strlcat( char *dst, const char *src, size_t size);
La fonction concat�ne les cha�nes ?dst
et ?src
, et place le r�sultat dans la cha�ne ?dst
. Contrairement � la fonction ?strcat()
, ?strlcat()
garantie que la longueur totale de la cha�ne r�sultat sera comprise entre la longueur initiale de ?dst
et ?size
. Le z�ro de fin de cha�ne est compatibilis�. Cette fonction sert principalement � �viter les d�passement de taille du tableau de caract�res. Consid�rons les cha�nes de caract�res suivantes :
char dst[100] = "1234";
char src[100] = "ABCD";
Voici quelques exemple d'appels � ?strlcat()
:
// Retourne 8
// dst = 1234AB
// src = ABCD
strlcat(dst, src, 7);
// Retourne 6
// dst = 1234
// src = ABCD
strlcat(dst, src, 2)
Vous pouvez tester la fonction en ligne sur repl.it.
La fonction ?strlcat()
est une fonction que l'on retrouve dans certaines impl�mentations de la biblioth�que ?string.h
, mais ce n'est pas une fonction standard du C. Pour utiliser cette fonction, il faut inclure cette biblioth�que :
#include <bsd/string.h>
Et compiler avec l'option ?-lbsd
, par exemple :
clang-7 -pthread -lm -lbsd -o main main.c
Voici le prototype :
size_t strlcat( char *dst, const char *src, size_t size);
La fonction concat�ne les cha�nes ?dst
et ?src
, et place le r�sultat dans la cha�ne ?dst
. Contrairement � la fonction ?strcat()
, ?strlcat()
garantie que la longueur totale de la cha�ne r�sultat sera comprise entre la longueur initiale de ?dst
et ?size
. Le z�ro de fin de cha�ne est compatibilis�. Cette fonction sert principalement � �viter les d�passement de taille du tableau de caract�res. Consid�rons les cha�nes de caract�res suivantes :
char dst[100] = "1234";
char src[100] = "ABCD";
Voici quelques exemple d'appels � ?strlcat()
:
// Retourne 8
// dst = 1234AB
// src = ABCD
strlcat(dst, src, 7);
// Retourne 6
// dst = 1234
// src = ABCD
strlcat(dst, src, 2)
Vous pouvez tester la fonction en ligne sur repl.it.
La fonction strlcat() est une fonction que l'on retrouve dans certaines impl�mentations de la biblioth�que string.h, mais ce n'est pas une fonction standard du C. Pour utiliser cette fonction, il faut inclure cette biblioth�que :
#include <bsd/string.h>
Et compiler avec l'option -lbsd, par exemple :
clang-7 -pthread -lm -lbsd -o main main.c
Voici le prototype :
size_t strlcat( char *dst, const char *src, size_t size);
La fonction concat�ne les cha�nes dst et src, et place le r�sultat dans la cha�ne dst. Contrairement � la fonction strcat(), strlcat() garantie que la longueur totale de la cha�ne r�sultat sera comprise entre la longueur initiale de dst et size. Le z�ro de fin de cha�ne est compatibilis�. Cette fonction sert principalement � �viter les d�passement de taille du tableau de caract�res. Consid�rons les cha�nes de caract�res suivantes :
char dst[100] = "1234";
char src[100] = "ABCD";
Voici quelques exemple d'appels � strlcat() :
// Retourne 8
// dst = 1234AB
// src = ABCD
strlcat(dst, src, 7);
// Retourne 6
// dst = 1234
// src = ABCD
strlcat(dst, src, 2)
Vous pouvez tester la fonction en ligne sur repl.it.
# | ID | Query | URL | Count |
---|---|---|---|---|
0 | 10466 | reproduire la fonction strlcat | https://fr.ans.wiki/2058/en-c-comment-fonctionne-strlcat | 1 |
1 | 10180 | strlcat | https://fr.ans.wiki/2058/en-c-comment-fonctionne-strlcat | 1 |