| msync | |||
Nommsync - Synchroniser un fichier et une projection en mémoire (mapping).Synopsis#include <unistd.h>#include <sys/mman.h>
#ifdef _POSIX_MAPPED_FILES int msync(const void *start, size_t length, int flags);
#endif Descriptionmsync écrit sur le disque les modifications qui ont été effectuées sur la copie d'un fichier qui est projeté en mémoire par mmap(2) . Si l'on utilise pas cette fonction, rien ne garantit que les changements soient écrits avant la suppression de la projection par munmap(2) . Pour être plus précis, la portion du fichier correspondant à la zone mémoire commençant en start et ayant une longueur de length est mise a jour.L'argument flags comprend les bits MS_ASYNC, MS_SYNC et MS_INVALIDATE. M_ASYNC et M_SYNC ne peuvent pas être utilisés conjointement. MS_ASYNC indique que la mise à jour doit être planifiée, mais l'appel système revient immédiatement. MS_SYNC demande une mise à jour immédiate, et attend qu'elle se termine avant de revenir. MS_INVALIDATE demande la désactivation de toutes les autres projections du même fichier, afin qu'elles soient toutes remises à jour avec les nouvelles données écrites. Valeur Renvoyéemsync renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas errno contient le code d'erreur.Erreurs
ConformitéPOSIX 1.b (anciennement POSIX.4).Voir Aussimmap(2) , B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
TraductionChristophe Blaess, 1997.
|