_C_TS_malloc_info() — 使用されるテラスペース・メモリー量の判別
フォーマット
#include <mallocinfo.h>
int _C_TS_malloc_info(struct _C_mallinfo_t *output_record, size_t sizeofoutput);
言語レベル
Extended
スレッド・セーフ
はい
説明
_C_TS_malloc_info() 関数は、指定した output_record 構造体内で使用されるテラスペース・メモリーの量を判別し、その情報を戻します。
注: この関数は、アプリケーション内のテラスペース・メモリー使用量の詳細デバッグ用です。
戻り値
正常に実行された場合、この関数は 0 を戻します。エラーが発生した場合、関数は負の値を戻します。
例
この例は、_C_TS_malloc_info() から戻された情報を stdout に出力します。このプログラムは TERASPACE(*YES *TSIFC) でコンパイルされます。
#include <stdio.h>
#include <stdlib.h>
#include <mallocinfo.h>
int main (void)
{
_C_mallinfo_t info;
int rc;
void *m;
/* Allocate a small chunk of memory */
m = malloc(500);
rc = _C_TS_malloc_info(&info, sizeof(info));
if (rc == 0) {
printf("Total bytes = %llu¥n",
info.total_bytes);
printf("Total allocated bytes = %llu¥n",
info.allocated_bytes);
printf("Total unallocated bytes = %llu¥n",
info.unallocated_bytes);
printf("Total allocated blocks = %llu¥n",
info.allocated_blocks);
printf("Total unallocated blocks = %llu¥n",
info.unallocated_blocks);
printf("Total requested bytes = %llu¥n",
info.requested_bytes);
printf("Total pad bytes = %llu¥n",
info.pad_bytes);
printf("Total overhead bytes = %llu¥n",
info.overhead_bytes);
}
else {
printf("_C_TS_malloc_info failed (rc = %d)¥n", rc);
}
free(m);
}
/****************************************************
The output should be similar to:
Total bytes = 524288
Total allocated bytes = 688
Total unallocated bytes = 523600
Total allocated blocks = 1
Total unallocated blocks = 1
Total requested bytes = 500
Total pad bytes = 12
Total overhead bytes = 176
****************************************************