MUNMAP(2) | System Calls Manual | MUNMAP(2)

# NAME

`munmap` — remove a mapping

# SYNOPSIS

`#include <sys/mman.h>`

int
`munmap`(void *addr, size_t len);

# DESCRIPTION

The `munmap`() system call deletes the mappings for the specified address range, and causes further references to addresses within the range to generate invalid memory references.

# RETURN VALUES

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

# ERRORS

`munmap`() will fail if:

[`EINVAL`]
  The addr and len parameters specify a region that would extend beyond the end of the address space, or some part of the region being unmapped is not part of the currently valid address space.
[`EPERM`]
  The addr and len parameters specify a region which contains at least one page marked immutable.

# SEE ALSO

madvise(2), mimmutable(2), mlock(2), mlockall(2), mmap(2), mprotect(2), msync(2), getpagesize(3)

# STANDARDS

When len is non-zero, the `munmap`() function conforms to IEEE Std 1003.1-2008 (“POSIX.1”).

# HISTORY

The `munmap`() system call has been available since 4.3BSD-Net/2.

# CAVEATS

IEEE Std 1003.1-2008 (“POSIX.1”) specifies that `munmap`() shall fail with `EINVAL` if len is 0. OpenBSD performs no action in this case.

January 21, 2024 | Debian