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

NOMBRE

       fsync, fdatasync - sincroniza el estado completo en memoria de un fichero con el del disco

SINOPSIS

       #include <unistd.h>

       int fsync(int fd);

       int fdatasync(int fd);

DESCRIPCIÓN

       fsync  copia  todas  las partes que están en memoria de un fichero a disco, y espera hasta
       que el dispositivo avise de que todas las partes se encuentran en almacenamiento  estable.
       También  actualiza  información de estado de metadatos. No garantiza necesariamente que la
       entrada en el directorio que contiene el fichero haya llegado también a disco.  Para  ello
       se  necesita  también  una  llamada  explícita  a fsync sobre el descriptor de fichero del
       directorio.

       fdatasync hace lo mismo que fsync pero solo vacía los datos de usuario, no los meta  datos
       como el valor mtime o el valor atime.

VALOR DEVUELTO

       En  caso  de  éxito,  devuelve  0. En caso de error, -1, y la variable errno toma un valor
       apropiado.

ERRORES

       EBADF  fd no es un descriptor de fichero válido para escribir.

       EROFS, EINVAL
              fd está enlazado a un fichero especial que no admite sincronización.

       EIO    Ha ocurrido un error durante la sincronización.

OBSERVACIONES

       En caso de que el disco duro tenga habilitada la escritura en caché, los datos  pueden  no
       estar realmente en almacenamiento permanente cuando fsync/fdatasync regrese.

       Cuando se monta un sistema de ficheros ext2 con la opción sync, las entradas de directorio
       son sincronizadas implícitamente también por fsync.

       En versiones del núcleo anteriores a la 2.4, fsync puede ser  ineficiente  sobre  ficheros
       grandes.  Una alternativa puede ser usar la opción O_SYNC en open(2).

CONFORME A

       POSIX.1b (anteriormente POSIX.4)

VÉASE TAMBIÉN

       bdflush(2), open(2), sync(2), mount(8), update(8), sync(8)