Skip to content
Syscall BSD#95

svc · unix #95

fsync

Vide en cache disque les données et métadonnées d'un fichier conservées en mémoire.

Prototype

int fsync(int fd);

Retour: int

Arguments

NameTypeDirDescription
fdint-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard95
xnu-1699.24.8macOS 10.7 Lion95
xnu-2050.18.24macOS 10.8 Mountain Lion95
xnu-2422.115.4macOS 10.9 Mavericks95
xnu-2782.40.9macOS 10.10 Yosemite95
xnu-3247.1.106macOS 10.11 El Capitan95
xnu-3789.1.32macOS 10.12 Sierra95
xnu-4570.1.46macOS 10.13 High Sierra95
xnu-4903.221.2macOS 10.14 Mojave95
xnu-6153.11.26macOS 10.15 Catalina95
xnu-7195.50.7.100.1macOS 11.0 Big Sur95
xnu-8019.41.5macOS 12.0 Monterey95
xnu-8792.41.9macOS 13.0 Ventura95
xnu-10002.1.13macOS 14.0 Sonoma95
xnu-11215.1.10macOS 15.0 Sequoia95
xnu-11417.101.15macOS 15.4 Sequoia95
xnu-12377.1.9macOS 26.0 Tahoe95
xnu-10002.41.995
xnu-10002.61.395
xnu-10002.81.595
xnu-10063.101.1595
xnu-10063.121.395
xnu-10063.141.195
xnu-11215.41.395
xnu-11215.61.595
xnu-11215.81.495
xnu-11417.121.695
xnu-11417.140.6995
xnu-12377.101.1595
xnu-12377.41.695
xnu-12377.61.1295
xnu-12377.81.495
xnu-1486.2.1195
xnu-1504.15.395
xnu-1504.3.1295
xnu-1504.7.495
xnu-1504.9.1795
xnu-1504.9.2695
xnu-1504.9.3795
xnu-1699.22.7395
xnu-1699.22.8195
xnu-1699.24.2395
xnu-1699.26.895
xnu-1699.32.795
xnu-2050.22.1395
xnu-2050.24.1595
xnu-2050.48.1195
xnu-2050.7.995
xnu-2050.9.295
xnu-2422.1.7295
xnu-2422.100.1395
xnu-2422.110.1795
xnu-2422.90.2095
xnu-2782.1.9795
xnu-2782.10.7295
xnu-2782.20.4895
xnu-2782.30.595
xnu-3247.10.1195
xnu-3248.20.5595
xnu-3248.30.495
xnu-3248.40.18495
xnu-3248.50.2195
xnu-3248.60.1095
xnu-3789.21.495
xnu-3789.31.295
xnu-3789.41.395
xnu-3789.51.295
xnu-3789.60.2495
xnu-3789.70.1695
xnu-4570.20.6295
xnu-4570.31.395
xnu-4570.41.295
xnu-4570.51.195
xnu-4570.61.195
xnu-4570.71.295
xnu-4903.231.495
xnu-4903.241.195
xnu-4903.270.4795
xnu-6153.101.695
xnu-6153.121.195
xnu-6153.141.195
xnu-6153.41.395
xnu-6153.61.195
xnu-6153.81.595
xnu-7195.101.195
xnu-7195.121.395
xnu-7195.141.295
xnu-7195.60.7595
xnu-7195.81.395
xnu-8019.61.595
xnu-8019.80.2495
xnu-8020.101.495
xnu-8020.121.395
xnu-8020.140.4195
xnu-8792.61.295
xnu-8792.81.295
xnu-8796.101.595
xnu-8796.121.295
xnu-8796.141.395

Exemples

C — durable write

write(fd, buf, n);
fcntl(fd, F_FULLFSYNC);

Notes

Sur macOS, fsync garantit seulement que les données ont atteint le cache d'écriture du disque, pas le support stable. Utiliser fcntl(fd, F_FULLFSYNC) pour une vraie durabilité — SQLite, CoreData et beaucoup de moteurs de bases de données s'en servent. fsync sur un fifo ou pipe renvoie EINVAL.

Détection

syscall::fsync:entry en DTrace; les probes io::done montrent les I/O physiques lors du vidage des caches.

API associées

fdatasyncsyncfcntlopenclose