Mac Developer Library Developer


This manual page is part of Xcode Tools version 5.0

To obtain these tools:

If you are running a version of Xcode Tools other than 5.0, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

MUNMAP(2)                   BSD System Calls Manual                  MUNMAP(2)

     munmap -- remove a mapping

     #include <sys/mman.h>

     munmap(void *addr, size_t len);

     The munmap() system call deletes the mappings for the specified address range, causing further refer-ences references
     ences to addresses within the range to generate invalid memory references.

     How munmap() handles a dirty page, depends on what type of memory is being unmapped:

     [Anonymous]        If the memory is anonymous memory and if the last reference is going away, then the
                        contents are discarded by definition of anonymous memory.

     [System V Shared]  If the memory mapping was created using System V shared memory, then the contents
                        persist until the System V memory region is destroyed or the system is rebooted.

     [File mapping]     If the mapping maps data from a file (MAP_SHARED), then the memory will eventually
                        be written back to disk if it's dirty.  This will happen automatically at some point
                        in the future (implementation dependent).  Note: to force the memory to be written
                        back to the disk, use msync(2).

     If there are still other references to the memory when the munmap is done, then nothing is done to the
     memory itself and it may be swapped out if need be. The memory will continue to persist until the last
     reference goes away (except for System V shared memory in which case, see above).

     Upon successful completion, munmap returns zero.  Otherwise, a value of -1 is returned and errno is set
     to indicate the error.

     Munmap() will fail if:

     [EINVAL]           The addr parameter was not page aligned (i.e., a multiple of the page size).

     [EINVAL]           The len parameter was negative or zero.

     [EINVAL]           Some part of the region being unmapped is not part of the currently valid address

     #include <sys/types.h>
     #include <sys/mman.h>

     The include file <sys/types.h> is necessary.

     munmap(caddr_t addr, size_t len);

     The type of addr has changed.

     getpagesize(3), msync(2), munmap(2), mprotect(2), madvise(2), mincore(2), compat(5)

     The munmap() function first appeared in 4.4BSD.

BSD                            October 16, 2008                            BSD

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.