Name

munmap - unmap files or devices into memory

Library

libc.lib

Synopsis

  #include <sys/mman.h>
  int munmap (void *addr, size_t len);

Return values

Upon successful completion, munmap() shall return 0; otherwise, it shall return -1 and set errno to indicate the error.

Detailed 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. The current implementation does not support partial deletion of mapped memory, i.e if offset to offset+len section of memory was mapped using mmap, then the entire section of memory offset+len will be deleted.

Examples

/*
* Detailed description: Example to create a mapped memory to a file region.
* Precondition: None
*               
*/
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>
#include <fcntl.h>
int main(void)
{
    int fd = -1;
    char* mapaddr;
    int len = getpagesize();
    int prot = PROT_WRITE | PROT_READ;
    if((fd = open("C:\\Test.txt", O_RDWR | O_CREAT, 0666) ) < 0){
        printf("File open failed\n");
    }
    mapaddr = (char*)mmap((void*)0, len, prot, MAP_SHARED, fd, 0);
    if(mapaddr == MAP_FAILED){
        printf("mmap on file failed\n");
    }
    printf("mmap on file succeeded\n");
}

         

Errors

The munmap system call will fail if:
[EINVAL]
  The addr argument was not page aligned, the len argument was zero or negative, or some part of the region being unmapped is outside the valid address range for a process.

See also

mmap, mprotect, msync, getpagesize

Feedback

For additional information or queries on this page send feedback

© 2005-2007 Nokia

Top