Manpages

名 前

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

書 式

#include <malloc.h>

void* malloc_get_state(void);

int malloc_set_state(void *state);

説 明

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 を 返 す 。

準 拠

こ れ ら の 関 数 は 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 プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。