table of contents
FDATASYNC(2) | Podręcznik programisty Linuksa | FDATASYNC(2) |
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.
1996-04-13 | Linux 1.3.86 |