SYNC(2) | Podręcznik programisty Linuksa | SYNC(2) |
sync, syncfs - zrzucenie buforów systemów plików na dysk
#include <unistd.h>
void sync(void);
int syncfs(int fd);
sync():
syncfs():
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.
Po pomyślnym zakończeniu syncfs() zwraca zero, po błędzie zwraca -1 i odpowiednio ustawia errno, wskazując na rodzaj błędu.
sync() zawsze kończy się pomyślnie.
syncfs() can fail for at least the following reasons:
syncfs() pojawił się w Linuksie 2.6.39; wsparcie biblioteczne zostało dodane w wersji 2.14 biblioteki glibc.
sync(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
syncfs() jest specyficzne dla Linuksa.
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.
According to the standard specification (e.g., POSIX.1-2001), sync() schedules the writes, but may return before the actual writing is done. However Linux waits for I/O completions, and thus sync() or syncfs() provide the same guarantees as fsync() called on every file in the system or filesystem respectively.
In mainline kernel versions prior to 5.8, syncfs() will fail only when passed a bad file descriptor (EBADF). Since Linux 5.8, syncfs() will also report an error if one or more inodes failed to be written back since the last syncfs() call.
Przed wersją 1.3.20 Linux nie czekał na zakończenie operacji wejścia/wyjścia przed powróceniem z tego wywołania systemowego.
Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>
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 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.
13 sierpnia 2020 r. | Linux |