OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / original / man3 / mallinfo.3
diff --git a/original/man3/mallinfo.3 b/original/man3/mallinfo.3
deleted file mode 100644 (file)
index cdd6dc0..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-'\" t
-.\" Copyright (c) 2012 by Michael Kerrisk <mtk.manpages@gmail.com>
-.\"
-.\" %%%LICENSE_START(VERBATIM)
-.\" Permission is granted to make and distribute verbatim copies of this
-.\" manual provided the copyright notice and this permission notice are
-.\" preserved on all copies.
-.\"
-.\" Permission is granted to copy and distribute modified versions of this
-.\" manual under the conditions for verbatim copying, provided that the
-.\" entire resulting derived work is distributed under the terms of a
-.\" permission notice identical to this one.
-.\"
-.\" Since the Linux kernel and libraries are constantly changing, this
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
-.\" responsibility for errors or omissions, or for damages resulting from
-.\" the use of the information contained herein.  The author(s) may not
-.\" have taken the same level of care in the production of this manual,
-.\" which is licensed free of charge, as they might when working
-.\" professionally.
-.\"
-.\" Formatted or processed versions of this manual, if unaccompanied by
-.\" the source, must acknowledge the copyright and authors of this work.
-.\" %%%LICENSE_END
-.\"
-.TH MALLINFO 3  2012-05-06 "Linux" "Linux Programmer's Manual"
-.SH NAME
-mallinfo \- obtain memory allocation information
-.SH SYNOPSIS
-.B #include <malloc.h>
-
-.B struct mallinfo mallinfo(void);
-.SH DESCRIPTION
-The
-.BR mallinfo ()
-function returns a copy of a structure containing information about
-memory allocations performed by
-.BR malloc (3)
-and related functions.
-This structure is defined as follows:
-.PP
-.in +4n
-.nf
-struct mallinfo {
-    int arena;     /* Non-mmapped space allocated (bytes) */
-    int ordblks;   /* Number of free chunks */
-    int smblks;    /* Number of free fastbin blocks */
-    int hblks;     /* Number of mmapped regions */
-    int hblkhd;    /* Space allocated in mmapped regions (bytes) */
-    int usmblks;   /* Maximum total allocated space (bytes) */
-    int fsmblks;   /* Space in freed fastbin blocks (bytes) */
-    int uordblks;  /* Total allocated space (bytes) */
-    int fordblks;  /* Total free space (bytes) */
-    int keepcost;  /* Top-most, releasable space (bytes) */
-};
-.fi
-.in
-.PP
-The fields of the
-.I mallinfo
-structure contain the following information:
-.TP 10
-.I arena
-The total amount of memory allocated by means other than
-.BR mmap (2)
-(i.e., memory allocated on the heap).
-This figure includes both in-use blocks and blocks on the free list.
-.TP
-.I ordblks
-The number of ordinary (i.e., non-fastbin) free blocks.
-.TP
-.I smblks
-The number of fastbin free blocks (see
-.BR mallopt (3)).
-.TP
-.I hblks
-The number of blocks currently allocated using
-.BR mmap (2).
-(See the discussion of
-.B M_MMAP_THRESHOLD
-in
-.BR mallopt (3).)
-.TP
-.I hblkhd
-The number of bytes in blocks currently allocated using
-.BR mmap (2).
-.TP
-.I usmblks
-The "highwater mark" for allocated space\(emthat is,
-the maximum amount of space that was ever allocated.
-This field is maintained only in nonthreading environments.
-.TP
-.I fsmblks
-The total number of bytes in fastbin free blocks.
-.TP
-.I uordblks
-The total number of bytes used by in-use allocations.
-.TP
-.I fordblks
-The total number of bytes in free blocks.
-.TP
-.I keepcost
-The total amount of releasable free space at the top
-of the heap.
-This is the maximum number of bytes that could ideally
-(i.e., ignoring page alignment restrictions, and so on) be released by
-.BR malloc_trim (3).
-.\" .SH VERSIONS
-.\" Available already in glibc 2.0, possibly earlier
-.SH CONFORMING TO
-This function is not specified by POSIX or the C standards.
-A similar function exists on many System V derivatives,
-and was specified in the SVID.
-.SH BUGS
-.\" FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=208
-.\" See the 24 Aug 2011 mail by Paul Pluzhnikov:
-.\"     "[patch] Fix mallinfo() to accumulate results for all arenas"
-.\" on libc-alpha@sourceware.org
-.B Information is returned for only the main memory allocation area.
-Allocations in other arenas are excluded.
-See
-.BR malloc_stats (3)
-and
-.BR malloc_info (3)
-for alternatives that include information about other arenas.
-
-The fields of the
-.I mallinfo
-structure are typed as
-.IR int .
-However, because some internal bookkeeping values may be of type
-.IR long ,
-the reported values may wrap around zero and thus be inaccurate.
-.SH EXAMPLE
-The program below employs
-.BR mallinfo ()
-to retrieve memory allocation statistics before and after
-allocating and freeing some blocks of memory.
-The statistics are displayed on standard output.
-
-The first two command-line arguments specify the number and size of
-blocks to be allocated with
-.BR malloc (3).
-
-The remaining three arguments specify which of the allocated blocks
-should be freed with
-.BR free (3).
-These three arguments are optional, and specify (in order):
-the step size to be used in the loop that frees blocks
-(the default is 1, meaning free all blocks in the range);
-the ordinal position of the first block to be freed
-(default 0, meaning the first allocated block);
-and a number one greater than the ordinal position
-of the last block to be freed
-(default is one greater than the maximum block number).
-If these three arguments are omitted,
-then the defaults cause all allocated blocks to be freed.
-
-In the following example run of the program,
-1000 allocations of 100 bytes are performed,
-and then every second allocated block is freed:
-.PP
-.in +4n
-.nf
-$ \fB./a.out 1000 100 2\fP
-============== Before allocating blocks ==============
-Total non\-mmapped bytes (arena):       0
-# of free chunks (ordblks):            1
-# of free fastbin blocks (smblks):     0
-# of mapped regions (hblks):           0
-Bytes in mapped regions (hblkhd):      0
-Max. total allocated space (usmblks):  0
-Free bytes held in fastbins (fsmblks): 0
-Total allocated space (uordblks):      0
-Total free space (fordblks):           0
-Topmost releasable block (keepcost):   0
-
-============== After allocating blocks ==============
-Total non\-mmapped bytes (arena):       135168
-# of free chunks (ordblks):            1
-# of free fastbin blocks (smblks):     0
-# of mapped regions (hblks):           0
-Bytes in mapped regions (hblkhd):      0
-Max. total allocated space (usmblks):  0
-Free bytes held in fastbins (fsmblks): 0
-Total allocated space (uordblks):      104000
-Total free space (fordblks):           31168
-Topmost releasable block (keepcost):   31168
-
-============== After freeing blocks ==============
-Total non\-mmapped bytes (arena):       135168
-# of free chunks (ordblks):            501
-# of free fastbin blocks (smblks):     0
-# of mapped regions (hblks):           0
-Bytes in mapped regions (hblkhd):      0
-Max. total allocated space (usmblks):  0
-Free bytes held in fastbins (fsmblks): 0
-Total allocated space (uordblks):      52000
-Total free space (fordblks):           83168
-Topmost releasable block (keepcost):   31168
-.fi
-.in
-.SS Program source
-\&
-.nf
-#include <malloc.h>
-#include "tlpi_hdr.h"
-
-static void
-display_mallinfo(void)
-{
-    struct mallinfo mi;
-
-    mi = mallinfo();
-
-    printf("Total non\-mmapped bytes (arena):       %d\\n", mi.arena);
-    printf("# of free chunks (ordblks):            %d\\n", mi.ordblks);
-    printf("# of free fastbin blocks (smblks):     %d\\n", mi.smblks);
-    printf("# of mapped regions (hblks):           %d\\n", mi.hblks);
-    printf("Bytes in mapped regions (hblkhd):      %d\\n", mi.hblkhd);
-    printf("Max. total allocated space (usmblks):  %d\\n", mi.usmblks);
-    printf("Free bytes held in fastbins (fsmblks): %d\\n", mi.fsmblks);
-    printf("Total allocated space (uordblks):      %d\\n", mi.uordblks);
-    printf("Total free space (fordblks):           %d\\n", mi.fordblks);
-    printf("Topmost releasable block (keepcost):   %d\\n", mi.keepcost);
-}
-
-int
-main(int argc, char *argv[])
-{
-#define MAX_ALLOCS 2000000
-    char *alloc[MAX_ALLOCS];
-    int numBlocks, j, freeBegin, freeEnd, freeStep;
-    size_t blockSize;
-
-    if (argc < 3 || strcmp(argv[1], "\-\-help") == 0)
-        usageErr("%s num\-blocks block\-size [free\-step [start\-free "
-                "[end\-free]]]\\n", argv[0]);
-
-    numBlocks = atoi(argv[1]);
-    blockSize = atoi(argv[2]);
-    freeStep = (argc > 3) ? atoi(argv[3]) : 1;
-    freeBegin = (argc > 4) ? atoi(argv[4]) : 0;
-    freeEnd = (argc > 5) ? atoi(argv[5]) : numBlocks;
-
-    printf("============== Before allocating blocks ==============\\n");
-    display_mallinfo();
-
-    for (j = 0; j < numBlocks; j++) {
-        if (numBlocks >= MAX_ALLOCS)
-            fatal("Too many allocations");
-
-        alloc[j] = malloc(blockSize);
-        if (alloc[j] == NULL)
-            errExit("malloc");
-    }
-
-    printf("\\n============== After allocating blocks ==============\\n");
-    display_mallinfo();
-
-    for (j = freeBegin; j < freeEnd; j += freeStep)
-        free(alloc[j]);
-
-    printf("\\n============== After freeing blocks ==============\\n");
-    display_mallinfo();
-
-    exit(EXIT_SUCCESS);
-}
-.fi
-.SH SEE ALSO
-.ad l
-.nh
-.BR mmap (2),
-.BR malloc (3),
-.BR malloc_info (3),
-.BR malloc_stats (3),
-.BR malloc_trim (3),
-.BR mallopt (3)
-.SH COLOPHON
-This page is part of release 3.79 of the Linux
-.I man-pages
-project.
-A description of the project,
-information about reporting bugs,
-and the latest version of this page,
-can be found at
-\%http://www.kernel.org/doc/man\-pages/.