Skip to content
Syscall BSD#65

svc · unix #65

msync

Écrit sur disque les pages modifiées d'un mapping adossé à un fichier.

Prototype

int msync(caddr_t addr, size_t len, int flags);

Retour: int

Arguments

NameTypeDirDescription
addrcaddr_t-
lensize_t-
flagsint-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard65
xnu-1486.2.1165
xnu-1504.15.365
xnu-1504.3.1265
xnu-1504.7.465
xnu-1504.9.1765
xnu-1504.9.2665
xnu-1504.9.3765

Exemples

C — synchronous flush

msync(map, len, MS_SYNC);

Notes

msync(2) accepte MS_ASYNC (queue l'I/O), MS_SYNC (bloque jusqu'à la fin) et MS_INVALIDATE (purge les pages propres en cache et force une relecture). Sur un mapping anonyme c'est un no-op. macOS route l'écriture par l'ubc (unified buffer cache), donc les données sont visibles aux read(2) suivants sur le même vnode.

API associées

mmapmunmapfsyncfdatasyncmadvise