Bonjour,
Je dois écrire strlcpy en C, j'ai du mal à comprendre le man et je l'ai lu plusieurs fois.
Je vous explique d'abord ce que j'ai compris, dîtes-moi si vous n'êtes pas d'accord avec moi.
man strcpy
Elle prend 2 paramètres, on doit copier src dans dest puis on ajoute un '\0' et on retourne dest.
Si dest est plus courte que src alors on retourne les x caractères de src copiés dans dest.
man strncpy
Elle prend 3 paramètres, on doit copier les n premiers caractères de src dans dest puis on ajoute des '\0' si nécessaire quand dest est plus long que src.
man strlcpy (ça devient compliqué)
Elle prend 3 paramètres (char *dest, char *src, unsigned int size)
Elle retourne la longueur qui est copiable de src dans dest.
En parallèle, il faut copier size - 1 caractères de src dans dest et mettre un '\0' à la fin.
La longueur retournée sera égale aux nombres de caractères, qui incluent le '\0'.
Que doit-on retourner si dest est plus courte que src, que doit on copier dans dest ?
Merci pour votre aide.
[https://www.freebsd.org/cgi/man.cgi?...cpy&sektion=3]
[http://manpagesfr.free.fr/man/man3/strcpy.3.html]