Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       sync, syncfs - zrzuca bufory systemu pliku na dysk

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

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
               || /* 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 ustawia errno,
       wskazując błąd.

BŁĘDY

       sync() zawsze kończy się pomyślnie.

       syncfs() może się nie powieść co najmniej z poniższych powodów:

       EBADF  fd nie jest prawidłowym deskryptorem pliku.

       EIO    Wystąpił błąd podczas synchronizacji. Błąd może odnosić się do danych  zapisywanych
              do jakiegoś pliku w systemie plików albo do metadanych powiązanych z samym systemem
              plików.

       ENOSPC Wyczerpano miejsce na dysku podczas synchronizacji.

       ENOSPC
       EDQUOT Dane zapisano do pliku na NFS lub na innym systemie plików,  który  nie  przydziela
              miejsca  w  momencie  wywołania systemowego write(2) i któryś z poprzednich zapisów
              nie powiódł się ze względu na brak miejsca na dysku.

WERSJE

       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.

STANDARDY

       sync() POSIX.1-2008.

       syncfs()
              Linux.

HISTORIA

       sync() POSIX.1-2001, SVr4, 4.3BSD.

       syncfs()
              Linux 2.6.39, glibc 2.14.

       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.

       W głównej gałęzi jądra, w wersjach wcześniejszych niż Linux 5.8, syncfs() zawodziło tylko,
       gdy podano nieprawidłowy deskryptor pliku (EBADF). Od Linuksa 5.8,  syncfs()  zgłosi  błąd
       również  wówczas,  gdy  nie  uda  się  zapisać  jednego lub więcej i-węzłów, od ostatniego
       wywołania syncfs().

USTERKI

       Przed Linuksem 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)

TŁUMACZENIE

       Autorami   polskiego   tłumaczenia   niniejszej   strony  podręcznika  są:  Przemek  Borys
       <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>,  Robert  Luberda
       <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją. Bliższe informacje o warunkach licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   lub   nowszej.   Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.