C'est tout le "charme" de la lib C. Pour des raisons de vitesse, il n'y a aucun contrôle. C'est à ton programme de contrôler ou voir qu'un contrôle n'est pas nécessaire et gagner en vitesse (ce type d'optimisation est à faire au compte-goute, c-à-d après un profile).
Par contre il y a des fonctions (ou des fonctions avec certains paramètres) qu'il faut éviter car là ton programme ne peut garantir que la fonction retournera...
Typiquement il y a gets() et (f)scanf().
Des solutions en restant avec la lib C existent mais c'est lourdingue (utiliser read() puis sscanf(), etc). Des extensions GNU fournissent des solutions fiables.
Bref, on sent rapidement tout l'intérêt d'avoir la glib sous le coude :-)
[^] # Re: Re : Les nouveautés du prochain X11R6.8
Posté par 007 . En réponse à la dépêche Les nouveautés du prochain X11R6.8. Évalué à 1.
Ouais.
> genre strndup
C'est tout le "charme" de la lib C. Pour des raisons de vitesse, il n'y a aucun contrôle. C'est à ton programme de contrôler ou voir qu'un contrôle n'est pas nécessaire et gagner en vitesse (ce type d'optimisation est à faire au compte-goute, c-à-d après un profile).
Par contre il y a des fonctions (ou des fonctions avec certains paramètres) qu'il faut éviter car là ton programme ne peut garantir que la fonction retournera...
Typiquement il y a gets() et (f)scanf().
Des solutions en restant avec la lib C existent mais c'est lourdingue (utiliser read() puis sscanf(), etc). Des extensions GNU fournissent des solutions fiables.
Bref, on sent rapidement tout l'intérêt d'avoir la glib sous le coude :-)