Provided by: manpages-ru-dev_4.19.0-7_all bug

ИМЯ

       sync, syncfs - записывает кэши файловых систем на диск

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #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

       syncfs():
           _GNU_SOURCE

ОПИСАНИЕ

       Вызов  sync()  приводит  к  записи в файловую систему всех отложенных изменений метаданных
       файловой системы и кэшированных файловых данных.

       Вызов syncfs() подобен sync(), но синхронизирует только файловую систему, содержащую файл,
       на который указывает открытый файловый дескриптор fd.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При нормальном завершении работы syncfs() возвращает 0. В случае ошибки возвращается -1, а
       errno устанавливается в соответствующее значение.

ОШИБКИ

       Вызов sync() всегда выполняется без ошибок.

       Вызов syncfs() может завершиться с ошибкой, по крайней мере, по следующей причине:

       EBADF  Значение fd не является правильным файловым дескриптором.

       EIO    An error occurred during synchronization.  This error may relate to data written to
              any file on the filesystem, or on metadata related to the filesystem itself.

       ENOSPC При синхронизации закончилось дисковое пространство.

       ENOSPC, EDQUOT
              Data  was  written  to  a file on NFS or another filesystem which does not allocate
              space at the time of a write(2)  system call, and some previous write failed due to
              insufficient storage space.

ВЕРСИИ

       syncfs()  first appeared in Linux 2.6.39; library support was added in 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() при вызове для
       каждого файла в системе или файловой системы, соответственно.

       In mainline kernel versions prior to Linux 5.8, syncfs()  will fail only when passed a bad
       file  descriptor  (EBADF).   Since Linux 5.8, syncfs() will also report an error if one or
       more inodes failed to be written back since the last syncfs()  call.

ДЕФЕКТЫ

       Before Linux 1.3.20, Linux did not wait for I/O to complete before returning.

СМ. ТАКЖЕ

       sync(1), fdatasync(2), fsync(2)

ПЕРЕВОД

       Русский   перевод   этой   страницы   руководства    был    сделан    Alexander    Golubev
       <fatzer2@gmail.com>,   Azamat   Hackimov  <azamat.hackimov@gmail.com>,  Hotellook,  Nikita
       <zxcvbnm3230@mail.ru>,       Spiros       Georgaras       <sng@hellug.gr>,       Vladislav
       <ivladislavefimov@gmail.com>,    Yuri    Kozlov   <yuray@komyakino.ru>   и   Иван   Павлов
       <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.