MALLOC_TRIM(3)

ИМЯ
malloc_trim — освобождает свободную память из кучи

ОБЗОР
#include <malloc.h>

int malloc_trim(size_t pad);

ОПИСАНИЕ
Функция malloc_trim() освобождает свободную память из кучи (используя sbrk(2) или madvise(2) с подходящими аргументами).

Аргумент pad определяет размер свободного пространства, оставляемого на верху кучи. Если он 0, то поддерживается минимум памяти (одна страница или меньше). Если значение отлично от нуля, то освобождается пространство для будущего распределения без необходимости использовать sbrk(2).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
malloc_trim() возвращает 1 если память была освобождена, 0 если это не возможно.

ОШИБКИ
Ошибки не установлены.

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
malloc_trim() | Безвредность в нитях | MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ
Эта функция является расширением GNU.

ЗАМЕЧАНИЯ
Эта функция автоматически вызывается функцией free(3) в определённых обстоятельствах. Смотрите обсуждение M_TOP_PAD и M_TRIM_THRESHOLD в mallopt(3).

В аргументе pad учитывается только главная куча (использующаяся в sbrk(2)); с кучами нитей не работает.

Начиная с glibc 2.8 эта функция освобождает память во всех областях (arenas) и во всех кусках (chunks) со свободными страницами целиком.

До glibc 2.8 эта функция освобождает память только с вершины кучи в главной области.

СМОТРИТЕ ТАКЖЕ
sbrk(2), malloc(3), mallopt(3)