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)