Content-type: text/html; charset=UTF-8
#include <malloc.h> void* malloc_get_state(void); int malloc_set_state(void *state);
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.
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.
Interface | Attribute | Value |
malloc_get_state(), malloc_set_state() | Thread safety | MT-Safe |
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.