fdatasync

Autres langues

Langue: pl

Version: 1996-04-13 (fedora - 25/11/07)

Section: 2 (Appels système)

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.