SYNC(2)

NAZWA
sync, syncfs - zrzucenie buforów systemów plików na dysk

SKŁADNIA
#include <unistd.h>

void sync(void);

int syncfs(int fd);

Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

sync():
    _XOPEN_SOURCE >= 500
        || /* Od glibc 2.19: */ _DEFAULT_SOURCE
        || /* Wersje glibc <= 2.19: */ _BSD_SOURCE

syncfs():
    _GNU_SOURCE

OPIS
sync() wymusza fizyczne zapisanie w systemach plików wszystkich oczekujących modyfikacji metadanych systemów plików i zbuforowanych danych plików.

syncfs() jest podobny do sync(), ale synchronizuje tylko system plików zawierający plik, do którego odnosi się otwarty deskryptor pliku fd.

WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu syncfs() zwraca zero, po błędzie zwraca -1 i odpowiednio ustawia errno, wskazując na rodzaj błędu.

BŁĘDY
sync() zawsze kończy się pomyślnie.

syncfs() może się nie powieść co najmniej z tego powodu:

EBADF
    fd nie jest prawidłowym deskryptorem pliku.

WERSJE
syncfs() pojawił się w Linuksie 2.6.39; wsparcie biblioteczne zostało dodane w wersji 2.14 biblioteki glibc.

ZGODNE Z
sync(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

syncfs() jest specyficzne dla Linuksa.

UWAGI
Począwszy od glibc 2.2.2 prototyp wywołania sync() w Linuksie wygląda jak powyżej, zgodnie z różnymi standardami. W wersji 2.2.1 i wcześniejszych biblioteki glibc było to "int sync(void)", a sync() zawsze zwracało 0.

Zgodnie ze standardowymi wskazaniami (np. POSIX.1-2001), sync() szereguje zapisy, lecz może powrócić przed dokonaniem fizycznego zapisu. Mimo to Linux czeka na zakończenie operacji wejścia/wyjścia i dlatego sync() lub syncfs() dają te same gwarancje, co wywołanie fsync(2) na każdym pliku w systemie lub odpowiednio w systemie plików.

BŁĘDY
Przed wersją 1.3.20 Linux nie czekał na zakończenie operacji wejścia/wyjścia przed powróceniem z tego wywołania systemowego.

ZOBACZ TAKŻE
sync(1), fdatasync(2), fsync(2)

O STRONIE
Angielska wersja tej strony pochodzi z wydania 4.07 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów można oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM) <pborys@dione.ids.pl>, Andrzej M. Krzysztofowicz (PTM) <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 4.07 oryginału.