malloc_set_state − record and restore state of malloc
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
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
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.
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.
explanation of the terms used in this section, see
are GNU extensions.
are 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 GNU Emacs to implement its "dumping"
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.
This page is
part of release 4.04 of the Linux man-pages project.
A description of the project, information about reporting
bugs, and the latest version of this page, can be found at