Документация по LinuxLinuxDoc.Ru 🔍

msync - синхронизирует содержимое файла с его отражением в памяти

НАЗВАНИЕ
msync - синхронизирует содержимое файла с его отражением в
памяти

СИНТАКСИС
#include
#include

#ifdef _POSIX_MAPPED_FILES
#ifdef _POSIX_SYNCHRONIZED_IO

int msync(const void *start, size_t length, int flags);

#endif
#endif

ОПИСАНИЕ

msync записывает на диск изменения, внесенные в файл,
отраженный в память при помощи функции mmap (2). Если не
использовать эту функцию, то нет никакой гарантии, что
изменения будут записаны в файл до вызова munmap (2).
Если быть точнее, то на диск записывается часть файла,
начинающаяся в памяти с адреса start длиной length.
Параметр flags состоит из комбинации битов MS_ASYNC,
MS_SYNC и MS_INVALIDATE, но не MS_ASYNC и MS_SYNC.
MS_ASYNC дает системе задание на запись и немедленно
возвращается в вызывающий процесс. MS_SYNC дает системе
задание на запись и ждет его исполнения. MS_INVALIDATE
приказывает системе обновить другие отражения этого файла
так, чтобы они содержали изменения, внесенные этим
вызовом.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При удачном завершении вызова возвращаемое значение равно
нулю. При ошибке оно равно -1, а переменной errno
присваивается номер ошибки.

КОДЫ ОШИБОК
EINVAL start не пропорционален PAGESIZE, или в параметре
flags не установлены биты MS_ASYNC | MS_INVALIDATE
| MS_SYNC.

EFAULT Заданная область памяти (или ее часть) не является
отражением файла.

СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1b (ранее это была версия POSIX.4)
Читать новости Linux в Telegram
Linux - msync - синхронизирует содержимое файла с его отражением в памяти
Мы в соцсетях ✉