MALLOC_GET_STATE

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page
 

名前

malloc_get_state, malloc_set_state - malloc 実装の状態を保存/復元する  

書式

#include <malloc.h>

void *malloc_get_state(void);

int malloc_set_state(void *state);
 

説明

注意: これらの関数は glibc バージョン 2.25 で削除された。

malloc_get_state() 関数は malloc(3) 内部のすべての管理用変数を記録する (ただし、 ヒープの実際の内容と malloc_hook(3) 関数ポインターの状態は記録されない)。 状態は malloc(3) で動的に確保されたシステム依存の opaque な (内部構造は分からない) データ構造体に記録され、 関数の結果としてそのデータ構造体へのポインターが返される (このメモリーは呼び出し元が責任をもって free(3) する必要がある)。

malloc_set_state() 関数は、 malloc(3) 内部のすべての管理用変数を state が指す opaque なデータ構造体から復元する。  

返り値

成功すると、 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() Thread safety MT-Safe

 

準拠

これらの関数は GNU による拡張である。  

注意

これらの関数が役に立つのは、 この malloc(3) の実装が共有ライブラリの一部として使用され、 ヒープの内容が何か他の方法で保存/復元される場合である。 この手法は GNU Emacs が「ダンプ」関数 ("dumping" function) を実装するのに使用されている。

これらの関数がフック関数ポインターの保存と復元を行うことはない。 ただし、 2 つ例外がある。 malloc_get_state() が呼び出された際に malloc チェック (mallopt(3) 参照) が使用中の場合、 malloc_set_state() は可能なら malloc チェックフックをリセットする。 また、 保存された状態の malloc チェックが使用中でないが、 呼び出し元が malloc チェックを要求していた場合、 フックは 0 にリセットされる。  

関連項目

malloc(3), mallopt(3)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

関数, MALLOC, STATE, 実装, チェック, 復元, 保存, ポインター, 状態, バージョン

Linux マニュアル 一覧

[man1] [man2] [man3] [man4] [man5] [man6] [man7] [man8]
[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z]

 

Index

名前
書式
説明
返り値
属性
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 12:08:37 GMT, June 11, 2022