Provided by: manpages-es_1.55-10_all bug

NOMBRE

       msync - sincroniza un fichero con un mapa de memoria

SINOPSIS

       #include <unistd.h>
       #include <sys/mman.h>

       #ifdef _POSIX_MAPPED_FILES
       #ifdef _POSIX_SYNCHRONIZED_IO

       int msync(void *comienzo, size_t longitud, int flags);

       #endif
       #endif

DESCRIPCIÓN

       msync  vuelca  a disco los cambios hechos en la copia en memoria de un fichero que ha sido
       mapeado en memoria empleando mmap (2).   Sin  la  utilización  de  esta  llamada  no  está
       garantizado  que  los  cambios  se  escriban de vuelta antes de que se llame a munmap (2).
       Para ser más precisos, se actualiza la parte  del  fichero  que  corresponde  al  área  de
       memoria  que  empieza  en  comienzo  y tiene de tamaño longitud.  El argumento flags puede
       tener a 1 los bits MS_ASYNC, MS_SYNC y MS_INVALIDATE, pero no a la vez MS_ASYNC y MS_SYNC.
       MS_ASYNC   planifica  una  actualización  para  más  adelante,  pero  la  llamada  regresa
       inmediatamente.  MS_SYNC pide una actualización y espera que se  complete.   MS_INVALIDATE
       pide  invalidar  cualesquiera  otros  mapeos  del  mismo  fichero  (de  forma  que  puedan
       actualizarse con los valores frescos recién escritos).

VALOR DEVUELTO

       En caso de éxito se devuelve 0. En caso de error  se  devuelve  -1  y  se  pone  un  valor
       apropiado en errno.

ERRORES

       EINVAL comienzo  no  es  múltiplo  de  PAGESIZE,  o  cualquier  bit distinto de MS_ASYNC |
              MS_INVALIDATE | MS_SYNC está a 1 en flags.

       EFAULT La memoria indicada (o parte de ella) no ha sido mapeada.

CONFORME A

       POSIX.1b (anteriormente POSIX.4)

VÉASE TAMBIÉN

       mmap(2), B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 y 389-391.