MALLOC_GET_STATE(3)

NOM
get_malloc_state, set_malloc_state - Sauvegarder et restaurer l'état de l'implémentation de malloc

SYNOPSIS
#include <stdlib.h>

void* malloc_get_state(void);
int malloc_set_state(void *state);

DESCRIPTION
La fonction malloc_get_state() sauvegarde l'état actuel de toutes les variables servant à la gestion interne de malloc(3) (mais pas le contenu du tas ou l'état des pointeurs de fonctions malloc_hook(3)). L'état est enregistré dans une structure de données opaque dépendant du système, allouée dynamiquement par malloc(3), et un pointeur vers cette structure de données est renvoyé comme valeur de résultat de la fonction (il est de la responsabilité de celui qui appelle cette fonction de libérer avec free(3) cette zone mémoire). La fonction malloc_set_state() restaure l'état de toutes les variables servant à la gestion interne de malloc(3) en recopiant celles se trouvant dans la structure de données opaque pointée par state.

VALEUR RENVOYÉE
En cas de succès, malloc_get_state() renvoie un pointeur vers une structure de données opaque nouvellement créée. En cas d'erreur (par exemple quand la zone mémoire pour la structure de données n'a pu être allouée), il renvoie NULL. En cas de succès, malloc_set_state() renvoie 0. Si l'implémentation détecte que state ne pointe pas vers une structure de données ayant une forme valide, malloc_set_state() renvoie -1. Si l'implémentation détecte que la version de la structure de données référencée par state est une version plus récente que celle connue par l'implémentation, malloc_set_state() renvoie -2.

CONFORMITÉ
Ces fonctions sont des extensions GNU.

NOTES
Ces fonctions sont particulièrement utiles lorsque cette implémentation de malloc(3) fait partie d'une bibliothèque dynamique, et quand le contenu du tas est sauvegardé et restauré par un autre mécanisme. Cette technique est utilisée par GNU Emacs pour implémenter sa fonction « dumping ». Les pointeurs de fonction crochet ne sont jamais sauvegardés ou restaurés par ces fonctions, avec deux exceptions : si la vérification de malloc (voir mallopt(3)) était active lorsque malloc_get_state() a été appelée, alors malloc_set_state() réinitialise si possible les fonctions crochets de on de malloc ; si la vérification de malloc n'était pas utilisée dans l'état sauvegardé, mais que l'appelant a demandé la vérification de malloc, alors les fonctions crochets sont mises à 0.

VOIR AUSSI
malloc(3), mallopt(3)

COLOPHON
Cette page fait partie de la publication 3.40 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://perkamon.alioth.debian.org/>.

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».