Skip to content
Syscall BSD#73

svc · unix #73

munmap

Démappe une plage de pages précédemment créée par mmap de l'espace d'adressage du processus.

Prototype

int munmap(caddr_t addr, size_t len);

Retour: int

Arguments

NameTypeDirDescription
addrcaddr_t-
lensize_t-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard73
xnu-1486.2.1173
xnu-1504.15.373
xnu-1504.3.1273
xnu-1504.7.473
xnu-1504.9.1773
xnu-1504.9.2673
xnu-1504.9.3773

Exemples

C — release a mapping

if (munmap(p, 0x4000) != 0) {
    perror("munmap");
}

Notes

munmap(2) appelle mach_vm_deallocate() sur le vm_map de la tâche. La longueur doit être alignée à la page ; l'adresse de départ est arrondie vers le bas. Les démappages partiels sont autorisés et scindent les entrées VM environnantes — un usage intensif fragmente la map et ralentit les allocations futures.

Détection

Aucun événement Endpoint Security pour munmap. La sonde syscall::munmap:entry de DTrace est la plus directe ; en post-mortem, la région VM disparaît simplement de la sortie de vmmap(1).

API associées

mmapmprotectvm_deallocatemach_vm_deallocatemadvise