Section: Manual del Programador de Linux (2)
Updated: 12 Abril 1996
Index Return to Main
Contents
mmap, munmap - ubica o elimina ficheros o dispositivos en memoria
caddr_t mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);
int munmap(void *start, size_t length);
La función mmap intenta ubicar length bytes comenzando en el desplazamiento offset desde el fichero (u otro objeto) espeficicado por fd en memoria, preferiblemente en la dirección start. Esta última dirección es una sugerencia y normalmente se especifica como 0. El lugar donde es ubicado el objeto es devuelto por mmap. El argumento prot describe la protección de memoria deseada. Lo forman los siguientes bits:
El parámetro flags especifica el tipo de objeto insertado, las opciones de asociación y si las modificaciones hechas a la copia insertada en memoria son privadas al proceso o son compartidas por otras referencias. Tiene los bits:
Debe especificarse exactamente uno de los parámetros MAP_SHARED o MAP_PRIVATE.
Los tres parámetros anteriores están descritos en POSIX.1b (formalmente POSIX.4). Linux también reconoce MAP_DENYWRITE, MAP_EXECUTABLE y MAP_ANON(YMOUS).
La llamada al sistema munmap borra las ubicaciones para el rango de direcciones especificado, y produce referencias a las direcciones dentro del rango a fin de generar referencias a memoria inválidas.
Si ha funcionado mmap devuelve un puntero al área reservada. En caso de error, es devuelto -1, y errno es modificado apropiadamente. Si ha funcionado munmap devuelve 0, si hay error -1, y errno es fijada (probablemente a EINVAL).
SVr4, POSIX.1b (formalmente POSIX.4), 4.4BSD. Svr4 documenta los códigos de error ENXIO y ENODEV.
(2), msync(2), shm_open(2), B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
This document was created by man2html, using
the manual pages.
Time: 06:16:20 GMT, January 22, 2005