Provided by: manpages-es_1.55-8_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)