MALLOC_TRIM(3)

名前
malloc_trim - ヒープから未使用メモリーを解放する

書式
#include <malloc.h>

int malloc_trim(size_t pad);

説明
malloc_trim() 関数は (適切な引数で sbrk(2) や madvise(2) を呼び出して) ヒープの未使用メモリーの解放を試みる。

pad 引数は、 ヒープの一番上から切り詰める際に残す未使用領域の量を指定する。 この引数が 0 の場合、 ヒープの一番上の最小量のメモリーだけを維持できる (つまり 1 ページかそれ未満)。 0 以外の引数を指定すると、 ヒープの一番上にある程度の量の未使用領域を残し、 将来の割り当てを sbrk(2) でヒープを拡張せずに行えるようにできる。

返り値
malloc_trim() 関数はメモリーが実際に解放されシステムに戻された場合に 1 を返し、 どのメモリーも解放できなかった場合は 0 を返す。

エラー
エラーは定義されていない。

属性
この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース | 属性 | 値
malloc_trim() | Thread safety | MT-Safe

準拠
この関数は GNU による拡張である。

注意
この関数は、 特定の状況では free(3) により自動的に呼び出される。 mallopt(3) の M_TOP_PAD と M_TRIM_THRESHOLD の議論を参照。

Only the main heap (using sbrk(2)) honors the pad argument; thread heaps do not.

Since glibc 2.8 this function frees memory in all arenas and in all chunks with whole free pages.

Before glibc 2.8 this function only freed memory at the top of the heap in the main arena.

関連項目
sbrk(2), malloc(3), mallopt(3)

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