table of contents
FSYNC(2) | Podręcznik programisty Linuksa | FSYNC(2) |
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¶
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/.
2001-04-18 | Linux 1.3.85 |