fsync(2) synchronizacja pełnego wewnątrzrdzeniowego stanu pliku

Other Alias

fdatasync

SKŁADNIA

#include <unistd.h>

int fsync(int fd);

int fdatasync(int fd);

OPIS

Uwaga! To tłumaczenie może być nieaktualne!

fsync kopiuje wszystkie wewnątrzrdzeniowe części pliku na dysk i czeka na zgłoszenie przez urządzenie, że wszystkie dane znajdują się na trwałym nośniku. Aktualizuje również informacje statystyczne o metadanych. Nie gwarantuje, że wpis w katalogu zawierający informacje o pliku również zostanie zapisany na dysku. Aby to osiągnąć, wymagane jest jawne wywołanie fsync dla deskryptora katalogu.

fdatasync robi to samo, co fsync, lecz zapisuje jedynie dane użytkownika, bez metadanych, takich jak mtime czy atime.

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 powiązany ze specjalnym plikiem, który nie wspiera synchronizacji.
EIO
Pojawił się błąd podczas synchronizacji.

UWAGI

W sytuacji, gdy twardy dysk ma włączone buforowanie zapisów, dane mogą w rzeczywistości nie zostać zapisane na trwałym nośniku do chwili powrotu z fsync/fdatasync.

Gdy system plików ext2 jest zamontowany z opcją sync, wpisy w katalogach są również jawnie zapisywane przez fsync.

W kernelach przed 2.4, fsync na dużych plkach mogło być niewydajne. Alternatywą mogło być używanie znacznika O_SYNC dla open(2).

ZGODNE Z

POSIX.1b (wcześniej POSIX.4)

INFORMACJE O TŁUMACZENIU

Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
man --locale=C 2 fsync

Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.