J'espère que tu ne codes pas en C toi, car si tu fais aveuglément confiance en ces fonctions autant ne pas les utiliser. Safe est un grand mot, à part envoyer une erreur à un développeur perdant de vu ce qu'il développe sans vérifier la cohérence des données qu'il manipule ça ne sert à rien. Qu'un strncpy te donne une erreur, c'est un moindre mal, mais retrouver son origine est très loin d'être toujours simple si on ne se base que sur les erreurs de ces fonctions.
D'ailleurs ces strn* sont loin d'être exemptes de problèmes et nécessitent de toute manière certaines vérifications avant d'être utilisées.
Si on ne gère pas proprement la cohérence des données qu'on utilise on peut vite arriver à des situations de ce genre:
[^] # Re: Le libre et les standards...
Posté par suJeSelS . En réponse au journal Banni de chez Microsoft.. Évalué à 0.
J'espère que tu ne codes pas en C toi, car si tu fais aveuglément confiance en ces fonctions autant ne pas les utiliser. Safe est un grand mot, à part envoyer une erreur à un développeur perdant de vu ce qu'il développe sans vérifier la cohérence des données qu'il manipule ça ne sert à rien. Qu'un strncpy te donne une erreur, c'est un moindre mal, mais retrouver son origine est très loin d'être toujours simple si on ne se base que sur les erreurs de ces fonctions.
D'ailleurs ces strn* sont loin d'être exemptes de problèmes et nécessitent de toute manière certaines vérifications avant d'être utilisées.
Si on ne gère pas proprement la cohérence des données qu'on utilise on peut vite arriver à des situations de ce genre:
char plop[24];
char plop2[42];
strncpy(plop, plop2, 42);