SINOPSIS
#include <sys/mman.h>
int munlock(const void *addr, size_t len);
DESCRIPCIÓN
munlock vuelve a activar la paginación para la zona de memoria que cae en el rango que comienza en la dirección addr con longitud len bytes. Todas las páginas que contienen una parte del rango de memoria especificado pueden ser movidas de nuevo por el núcleo al espacio de intercambio (swap) externo tras llamar a munlock.Los bloqueos de memoria no se apilan; esto es, las páginas que han sido bloqueadas algunas veces mediante llamadas a mlock o a mlockall serán desbloqueadas por una sola llamada a munlock para el rango correspondiente, o por munlockall. Las páginas que están asociadas a varios lugares o por varios procesos permanecen bloqueadas en RAM mientras estén bloqueadas por lo menos en un lugar o por al menos un proceso.
En sistemas POSIX en los que mlock y munlock estén disponibles, se define en <unistd.h> la constante _POSIX_MEMLOCK_RANGE, y PAGESIZE, en <limits.h>, indica el número de bytes por cada página.
VALOR DEVUELTO
En caso de éxito, munlock devuelve cero. En caso de error, devuelve -1 y se pone en errno un valor apropiado, y no tiene lugar ningún cambio a ningún bloqueo en el espacio de direcciones del proceso.ERRORES
- ENOMEM
- Parte del rango de direcciones especificado no corresponde a páginas asociadas en el espacio de direcciones del proceso.
- EINVAL
- len no era un número positivo.