_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
 ****************************************************