Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       malloc_get_state, malloc_set_state - сохраняют и восстанавливают состояние в реализации malloc

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <malloc.h>

       void *malloc_get_state(void);
       int malloc_set_state(void *state);

ОПИСАНИЕ

       Note: these function are removed in glibc 2.25.

       Функция  malloc_get_state()  записывает  текущее состояние всех внутренних служебных переменных malloc(3)
       (но  не  фактическое  содержимое  кучи  или  состояние  указателей  функций  malloc_hook(3)).   Состояние
       сохраняется  в  системно-зависимой  структуре  данных  с  закрытым форматом, динамически выделенной через
       malloc(3), и указатель на эту структуру данных возвращается как результат  функции  (вызывающий  является
       ответственным за вызов free(3) для этой памяти).

       Функция  malloc_set_state()  восстанавливает значения состояния внутренних служебных переменных malloc(3)
       из сохранённой структуры закрытого формата, на которую указывает state.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При успешном выполнении malloc_get_state() возвращает указатель на  только  что  выделенную  структуру  с
       закрытым   форматом.   При   ошибке   (например,  если  не  получилось  выделить  память  под  структуру)
       malloc_get_state() возвращает NULL.

       При успешном выполнении malloc_set_state() возвращается 0. Если реализация  обнаруживает,  что  state  не
       указывает  на  корректную  структуру  с  данными,  то  malloc_set_state()  возвращает -1. Если реализация
       обнаруживает, что версия структуры данных, на которую ссылается state, новее чем известно реализации,  то
       malloc_set_state() возвращает -2.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ ИнтерфейсАтрибутЗначение │
       ├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │ malloc_get_state(), malloc_set_state()                              │ Безвредность в нитях │ MT-Safe  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       Эти функции являются расширениями GNU.

ЗАМЕЧАНИЯ

       Эти  функции  полезны  при  использовании реализации malloc(3) в виде общей библиотеки, а содержимое кучи
       сохраняется/восстанавливается каким-то другим способом. Это используется в GNU Emacs для реализации своей
       функции «выгрузки».

       Эти функции никогда не сохраняют и не восстанавливают указатели на перехватывающие функции, но  есть  два
       исключения:  если  вызваны  проверки  malloc (смотрите mallopt(3)), то, если возможно, malloc_get_state()
       сбрасывает проверки malloc перехватывающих функций; если проверки malloc не  используются  в  сохранённом
       состоянии, но вызывающий их запросил, то перехватывающие функции сбрасываются в 0.

СМ. ТАКЖЕ

       malloc(3), mallopt(3)

ПЕРЕВОД

       Русский   перевод   этой   страницы   руководства   был   сделан   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.

Linux man-pages 6.03                           15 декабря 2022 г.                            malloc_get_state(3)