Provided by: manpages-pl-dev_20060617-1_all bug

NAZWA

       fdatasync  - synchronizuje rdzeniowe zawartości plików z zawartością na
       dysku.

SKŁADNIA

       #include <unistd.h>

       #ifdef _POSIX_SYNCHRONIZED_IO

       int fdatasync(int fd);

       #endif

OPIS

       fdatasync wypróżnia wszystkie  bufory  pliku  na  dysk  (zanim  nastąpi
       powrót  z  tej  funcji  systemowej).  Robi  to  co  fsync lecz nie musi
       odnawiać metadanych takich jak czas dostępu.

       Aplikacje, które dostają się do baz danych, lub plików z logami  często
       dopisują  niewielką  ilość  danych  (np.  linijkę do pliku z logiem), a
       następnie natychmiast  wywołują  fsync,  aby  zapewnić  fizyczny  zapis
       danych  na  dysk.  Niestety, fsync zawsze inicjuje dwie operacje: jedną
       dla nowo zapisanych danych i drugą w celu odnowienia czasu  modyfikacji
       zapisanego  w  i-węźle. Jesli czas modyfikacji nie jest częścią pojęcia
       transakcji, można użyć fdatasync, aby zapobiec niepotrzebnym zapisom i-
       węzłów.

WARTOŚĆ ZWRACANA

       Po  pomyślnym  zakończeniu zwracane jest zero. Po błędzie zwracane jest
       -1 i odpowiednio ustawiane errno.

BŁĘDY

       EBADF  fd nie jest prawidłowym deskryptorem pliku otwartego do  zapisu.

       EROFS, EINVAL
              fd  jest  skojarzony  z  plikiem  specjalnym,  który nie wspiera
              synchronizacji.

       EIO    Nastąpił błąd podczas synchronizacji.

USTERKI

       Obecnie (Linux 2.2) fdatasync jest równoważne fsync.

ZGODNE Z

       POSIX1b (wcześniej POSIX.4)

ZOBACZ TAKŻE

       fsync(2), B.O. Gallmeister, POSIX.4, O'Reilly, str. 220-223 i 343.