suivi de "Problème avec math.h" - C - Programmation
Marsh Posté le 05-01-2007 à 00:31:19
++fab a écrit : Pour moi, c'est grave. Je développe habituellement en C++, mais je me dois de maitriser la bibliothèque C qui est également "accessible". Dans ce contexte, je (on) ne suis pas obligé d'écrire mes propres fonctions de saisie/manipulation de chaines de caractères. |
Absolument pas. Tu as en effet à ta disposition "fgets()" et "sscanf()" qui te permettent de faire de la saisie totalement sécurisée.
Quand à la manipulation, ben tu (toi et tous les autres prog. C) sont sensés contrôler ce que vous manipulez...
Marsh Posté le 05-01-2007 à 00:42:39
Sve@r a écrit : Absolument pas. |
A quelle phrase réponds-tu exactement ?
Citation : Tu as en effet à ta disposition "fgets()" et "sscanf()" qui te permettent de faire de la saisie totalement sécurisée. |
Indeed (?)
Citation : Quand à la manipulation, ben tu (toi et tous les autres prog. C) sont sensés contrôler ce que vous manipulez... |
Je ne vois pas non plus à quoi tu réponds.
Marsh Posté le 05-01-2007 à 12:15:50
++fab a écrit :
A quelle phrase réponds-tu exactement ?. |
Je disais que tu n'es absolument pas obligé de réécrire tes propres fonctions...
++fab a écrit :
Je ne vois pas non plus à quoi tu réponds. |
Tu as parlé de ne pas être obligé de réécrire les fonctions de manipulation de chaînes => Je ne réponds pas, je confirme juste que tu n'es rien obligé de réécrire car les fonctions existantes fonctionnent déjà parfaitement à la condition de contrôler ce que tu manipules (style ne pas faire du strcpy() avec une source plus grosse que ce que la destination peut accepter...
Marsh Posté le 05-01-2007 à 16:41:47
Sve@r a écrit : Je disais que tu n'es absolument pas obligé de réécrire tes propres fonctions... |
tout à fait, notament dans le contexte que j'évoquais dans ma réponse précédente.
Sve@r a écrit : Tu as parlé de ne pas être obligé de réécrire les fonctions de manipulation de chaînes => Je ne réponds pas, je confirme juste que tu n'es rien obligé de réécrire car les fonctions existantes fonctionnent déjà parfaitement à la condition de contrôler ce que tu manipules (style ne pas faire du strcpy() avec une source plus grosse que ce que la destination peut accepter... |
C'est Emmanuel qui a parlé de réécrire des fonctions de ce genre. J'ai répondu en me positionnant dans un contexte.
J'attend un peu plus d'une fonction qu'elle fonctionne (ie qu'elle soit conforme à sa documentation ...), j'attend d'elle qu'elle améliore la qualité du code et la productivité. Ceci s'applique notament aux fonction de saisie/manipulation de chaine de caractères de la bibilothèque C. J'ai déjà donné mon avis la dessus, et je ne suis pas opposé à ce que disait Emmanuel:"Si les fonctions ne te plaisent pas, écrit les tiennes (je ne me suis pas gêné)", ou à l'utilisation de bibliothèques tierces. Encore une fois, dans mon contexte, c'est le cadet de mes soucis.
Marsh Posté le 04-01-2007 à 20:02:06
Je connais ses positions (Charlie Gordon). Personellement, je n'ai pas de problèmes avec cette fonction. Il sufit de lire la doc. Son comportement est on ne peut plus logique. Ce n'est pas le cas de strncpy() qui est tyrès déroutante et que je préfère ne pas utiliser (strncat() est AMA plus adaptée)
Ma mémoire me fait défaut, ou tu as corrigé un bug dans ta bibliothèque suite à une conversation sur fclc avec Charlie ?
C'était du genre: "Et bien je te laisse regarder dans ma bibliothèque" (voir s'il n'y a pas un bug avec strncat). Charlie Gordon raplique: il y a un bug ici - Damned!
Je me rappelle que Charlie disait (à peu près) que pour trouver un bug dans un programme C, il suffisait de faire un grep sur strncat.
Je ne suis pas certain que les fonction strn*() aient été conçues comme des version 'sécurisées'. Il s'agit plutôt d'un mécanisme d'extraction de sous-chaine un peu maladroit...
Oui, c'est assez juste.
on atteind pas "une bonne partie", mais on tape quand même dans les plus connues
OK. Et alors ? C'est grave ? Si le C ne te plait pas, personne ne t'oblige à en faire. Si les fonctions ne te plaisent pas, écrit les tiennes (je ne me suis pas gêné)
Pour moi, c'est grave. Je développe habituellement en C++, mais je me dois de maitriser la bibliothèque C qui est également "accessible". Dans ce contexte, je (on) ne suis pas obligé d'écrire mes propres fonctions de saisie/manipulation de chaines de caractères.
Message édité par ++fab le 04-01-2007 à 20:05:49