NAZWA¶
fsync, fdatasync - synchronizacja pełnego wewnątrzrdzeniowego
stanu pliku z zapisanym na dysku
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)
ZOBACZ TAKŻE¶
bdflush(2),
open(2),
sync(2),
mount(8),
update(8),
sync(8)
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/.