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/.