Je trouve que wrapper malloc() est déjà trop lourd
Je trouve surtout qu'il est dangereux parce que selon les extraits des pages de manuel publiées ici,
il peut sortir NULL en cas de xmalloc(0) sous linux.
sous FreeBSD, jemalloc(3) retourne un pointeur dans ce cas là.
Even a request for zero bytes (i.e., malloc(0)) returns a pointer
to something of the minimum allocatable size.
De fait, il vaut mieux connaitre (un peu) l'implémentation du malloc que l'on utilise.
Et lorsque l'on alloue pour le noyau c'est encore différent.
Dans tout les programmes non interactif, j'exit() après avoir utilisé perror():
[^] # Re: foobar
Posté par David Marec . En réponse au journal Gestion des erreurs d’allocation mémoire en C. Évalué à 3. Dernière modification le 27 octobre 2016 à 15:31.
Je trouve surtout qu'il est dangereux parce que selon les extraits des pages de manuel publiées ici,
il peut sortir
NULLen cas dexmalloc(0)sous linux.De fait, il vaut mieux connaitre (un peu) l'implémentation du
mallocque l'on utilise.Et lorsque l'on alloue pour le noyau c'est encore différent.
Quel différence avec err(3) ?(1)
Oui, l'un provoque un dump et pas l'autre. Si l'on veut un dump, on peut alors effectivement utiliser
perror(1)puisabort(3).(1): au hasard, un des exemples de la page :