Ecrire fonction strlcpy

Fermé
stell-91 Messages postés 503 Date d'inscription dimanche 25 décembre 2011 Statut Membre Dernière intervention 25 janvier 2022 - Modifié le 13 nov. 2017 à 00:28
 n - 12 août 2020 à 08:20
Bonjour,

Je dois ecrire strlcpy en C, j'ai du mal a comprendre le man et je l'ai lu plusieurs fois.

Je vous explique d'abord ce que j'ai compris, dite moi si vous etes 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 copier 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 compliquer)
Elle prend 3 paramètres (char *dest, char *src, unsigned int size)
Elle retourne la longueur qui est copiable de src dans dest.
En parallele il faut copier size - 1 caracteres de src dans dest et mettre un '\0' à la fin. La longueur retourner sera egale aux nombres de caracteres qui inclut le '\0'
Que doit on retourner si dest est plus court que src, que doit on copier dans dest ?

Merci pour votre aide

https://www.freebsd.org/cgi/man.cgi?query=strlcpy&sektion=3

http://manpagesfr.free.fr/man/man3/strcpy.3.html

A voir également:

2 réponses

flagch Messages postés 1 Date d'inscription lundi 9 juillet 2018 Statut Membre Dernière intervention 9 juillet 2018 2
Modifié le 9 juil. 2018 à 23:15
Salut les amis,

Je n'ai pas creusé la question en elle-même, d'autant que ça fait quinze ans au moins que je n'ai plus fait de C...

Je me permets juste une remarque car vos échanges sont assez symptomatiques d'un problème récurrent qui se pose avec de plus en plus d'acuité : l'absolue nécessité de maîtriser le langage - je parle bien de la langue (le français en l'occurrence) et non un langage informatique - pour solutionner des problèmes plus ou moins complexes. Sans langage, la pensée est impossible, et réciproquement. Donc il devient compliqué de communiquer dès lors qu'on n'est pas capable d'exprimer sa pensée de façon claire.

Tout aussi important que de savoir mettre des mots sur ce qu'on pense, l'absolue nécessité de comprendre un texte lu (ou écouté). La meilleure documentation technique ne vaut rien si l'on n'est pas capable de saisir les nuances du langage.

Si on veut transmettre des idées, il est indispensable de posséder quelques bases linguistiques comme par exemple :
- un minimum de vocabulaire nuit rarement
- quelques vagues notions de grammaire peuvent occasionnellement aider
- la PONCTUATION : souvent négligée mais ô combien importante ! Mal (ou pas) utilisée, la ponctuation rend un texte aussi illisible qu'une fonction mathématique dans laquelle on aurait mélangé aléatoirement les opérateurs.

Étant moi-même développeur, mais aussi et surtout amoureux de la langue (particulièrement la mienne : le français), j'ai été mille fois confronté à des collègues incapables d'énoncer en français un problème simple du point de vue logique ou mathématique. Résultat : on se retrouve immanquablement dans une impasse. On peut être un génie mais, sans pouvoir expliquer clairement notre trouvaille, on est incapable de la transmettre. Pas besoin d'être informaticien non plus pour voir les dégâts que provoque notre faible maîtrise du langage : qui n'a jamais expérimenté un SMS mal interprété pour cause de grêve de la virgule ? La virgule est selon moi une des premières causes de divorce de nos jours !

Et je ne parle même pas du point de suspension... qui est... devenu avec l'avènement (avénement pour les puristes !) du langage SMS... une vraie calamité de... notre... temps. Quoi de plus simple, en effet, de presser trois fois sur cette touche POINT pour modifier complètement le sens de ce qui précède ?

Je ne sais plus vraiment pourquoi j'ai commencé à rédiger ce post, d'autant qu'il n'apporte pas grand chose à la question initiale :))))
C'était juste pour attirer l'attention du lecteur sur l'importance d'apprendre le français, et pas uniquement l'orthographe mais surtout la grammaire, et particulièrement la syntaxe. C'est essentiel. Primordial !
Peut-être aussi pour me venger gentiment de mes collègues qui me prenaient presque pour un "teubé" quand je leur disais que ce qu'ils me disaient ou m'écrivaient surtout n'était simplement pas logique, pas français.

Bond; j'arêtes las espérant n'avoir pas commis trop de phôtes qu'on-promet-tantes en rédigeant ceux laïus, si non j'aux raies l'aire daim qu'on nom ? :)
3
J'ai voté "merci" par mégarde.
1