Linux
2017-09-15
Aliases: syncfs(2), syncfs(2), syncfs(2), syncfs(2), syncfs(2), syncfs(2), syncfs(2), syncfs(2), syncfs(2), syncfs(2)
man-pages-ru
Russian man pages from the Linux Documentation Project
manpages-dev
Manual pages about using GNU/Linux for development
man-pages
Linux kernel and C library user-space interface documentation
ИМЯ
sync, syncfs - записывает кэши файловых систем на диск
ОБЗОР
#include <unistd.h>
void sync(void);
int syncfs(int fd);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
sync():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _BSD_SOURCE
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _BSD_SOURCE
syncfs():
_GNU_SOURCE
ОПИСАНИЕ
Вызов sync() приводит к записи в файловую систему всех отложенных изменений метаданных файловой системы и кэшированных файловых данных.
Вызов syncfs() подобен sync(), но синхронизирует только файловую систему, содержащую файл, на который указывает открытый файловый дескриптор fd.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При нормальном завершении работы syncfs() возвращает 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
ОШИБКИ
Вызов sync() всегда выполняется без ошибок.
Вызов syncfs() может завершиться с ошибкой, по крайней мере, по следующей причине:
EBADF | Значение fd не является правильным файловым дескриптором. |
ВЕРСИИ
Системный вызов syncfs() впервые появился в Linux 2.6.39; поддержка в glibc добавлена в версии 2.14.
СООТВЕТСТВИЕ СТАНДАРТАМ
sync(): POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
syncfs() есть только в Linux.
ЗАМЕЧАНИЯ
Начиная с glibc 2.2.2 Linux-прототип sync() стал соответствовать различным стандартам. В glibc 2.21 и старее он объявлялся как «int sync(void)» и вызов sync() всегда возвращал 0.
В соответствии со стандартной спецификацией (например POSIX.1-2001), sync() только планирует запись, и может закончить работу до того как запись будет на самом деле произведена. Однако в Linux выполняется ожидание завершения операций ввода-вывода и поэтому sync() или syncfs() предоставляют такие же гарантии как fsync при вызове для каждого файла в системе или файловой системы, соответственно.
ДЕФЕКТЫ
До версии 1.3.20 Linux не ждёт завершения операций ввода-вывода перед возвращением.