Provided by: manpages-dev_3.54-1ubuntu1_all bug

NAME

       malloc_get_state, malloc_set_state - record and restore state of malloc implementation

SYNOPSIS

       #include <stdlib.h>

       void* malloc_get_state(void);

       int malloc_set_state(void *state);

DESCRIPTION

       The  malloc_get_state()  function  records  the  current  state  of all malloc(3) internal
       bookkeeping variables  (but  not  the  actual  contents  of  the  heap  or  the  state  of
       malloc_hook(3)  functions  pointers).   The state is recorded in a system-dependent opaque
       data structure dynamically allocated via malloc(3), and a pointer to that  data  structure
       is  returned  as  the function result.  (It is the caller's responsibility to free(3) this
       memory.)

       The malloc_set_state() function restores the state of all malloc(3)  internal  bookkeeping
       variables to the values recorded in the opaque data structure pointed to by state.

RETURN VALUE

       On  success,  malloc_get_state()  returns  a  pointer  to  a  newly  allocated opaque data
       structure.  On error (for example, memory could not be allocated for the data  structure),
       malloc_get_state() returns NULL.

       On  success,  malloc_set_state() returns 0.  If the implementation detects that state does
       not point to a correctly formed data structure, malloc_set_state()  returns  -1.   If  the
       implementation  detects  that  the version of the data structure referred to by state is a
       more recent version than this implementation knows about, malloc_set_state() returns -2.

CONFORMING TO

       These functions are GNU extensions.

NOTES

       These functions are especially useful when using this malloc(3) implementation as part  of
       a  shared  library,  and the heap contents are saved/restored via some other method.  This
       technique is used by the GNU Emacs to implement its "dumping" function.

       Hook function  pointers  are  never  saved  or  restored  by  these  functions,  with  two
       exceptions:  if  malloc  checking  (see mallopt(3)) was in use when malloc_get_state() was
       called, then malloc_set_state() resets  malloc  checking  hooks  if  possible;  if  malloc
       checking  was  not  in  use  in  the  recorded  state, but the caller has requested malloc
       checking, then the hooks are reset to 0.

SEE ALSO

       malloc(3), mallopt(3)

COLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.