Provided by: manpages-ru-dev_4.18.1-1_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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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