mmap allocates memory in heap ?

mmap

Solution

On a Unix-like system, your program's address space consists of one or more virtual memory regions, each of which is mapped by the OS to physical memory, to a file, or to nothing at all.

The heap is, generally speaking, one specific memory region created by the C runtime, and managed by `malloc` (which in turn uses the `brk` and `sbrk` system calls to grow and shrink).

`mmap` is a way of creating new memory regions, independently of `malloc` (and so independently of the heap). `munmap` is simply its inverse, it releases these regions.

Problem

I was reading about mmap in wikipedia and trying out this example http://en.wikipedia.org/wiki/Mmap#Example_of_usage. I have compiled this program with gcc and ran valgrind overit. Here is valgrind output: ``` # valgrind a.out ==7018== Memcheck, a memory error detector ==7018== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==7018== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==7018== Command: a.out ==7018== PID 7018: anonymous string 1, zero-backed string 1 PID 7019: anonymous string 1, zero-backed string 1 PID 7018: anonymous string 2, zero-backed string 2 ==7018== ==7018== HEAP SUMMARY: ==7018== in use at exit: 0 bytes in 0 blocks ==7018== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==7018== ==7018== All heap blocks were freed -- no leaks are possible ==7018== ==7018== For counts of detected and suppressed errors, rerun with: -v ==7018== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2) PID 7019: anonymous string 2, zero-backed string 2 ==7019== ==7019== HEAP SUMMARY: ==7019== in use at exit: 0 bytes in 0 blocks ==7019== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==7019== ==7019== All heap blocks were freed -- no leaks are possible ==7019== ==7019== For counts of detected and suppressed errors, rerun with: -v ==7019== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2) ``` My Question is Does mmap allocate memory on Heap ? if not what does munmap do ?

Original source