Scroll to navigation

MALLOC_TRIM(3) Руководство программиста Linux 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)

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан aereiae <aereiae@gmail.com>, Alexey <a.chepugov@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, ITriskTI <ITriskTI@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Малянов Евгений Викторович <maljanow@outlook.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

13 августа 2020 г. Linux