Linux2009.12.14 23:53
최초 의도한 내용은,
malloc() 으로 할당받은 포인터가 있고,
이 포인터 만을 가지고, 얼마나 큰 용량을 할당 받았는지 알아내는 방법에 대한 것이었는데
일단 malloc()으로 할당된 총 메모리 용량이라도 링크...

#include <malloc.h>
#include <stdio.h>

#define mm() do{s_m = mallinfo(); fprintf(stdout, "%d/%d --\n", s_m.arena, s_m.uordblks);}while(0)

int main(int s_argc, char **s_argv)
{
        struct mallinfo s_m;
        void *s_p;

        mm();

        s_p = malloc(100);
        mm();

        free(s_p);
        mm();

        s_p = malloc(10000);
        mm();

        free(s_p);
        mm();

        return(0);
}

% ./a.out
0/0 --
135168/104 --
135168/0 --
135168/10008 --
135168/0 --

[링크 : http://webdizen.new21.net/blog/3041]


 struct mallinfo {
   int arena;
   int ordblks;
   int smblks;
   int hblks;
   int hblkhd;
   int usmblks;
   int fsmblks;
   int uordblks;
   int fordblks;
   int keepcost;
 };

[링크 : http://www.delorie.com/djgpp/doc/libc/libc_550.html]


[링크 : http://www.ibm.com/developerworks/linux/library/l-memory/] 영문
[링크 : http://www.ibm.com/developerworks/kr/library/l-memory/] 한글

[링크 : http://www.gnugeneration.com/books/linux/2.6.20/kernel-api/ch05.html]

[링크 : http://weezzle.net/1660]
신고
Posted by 구차니

댓글을 달아 주세요

  1. 차가운 겨울이 되었답니다
    건강함을 승리하시길

    사랑합니다 행복하세요!!

    2009.12.15 09:09 신고 [ ADDR : EDIT/ DEL : REPLY ]