[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Синхронизация памяти с физическим носителем
Библиотечная функция msync(3C) записывает все измененные страницы в
диапазоне [addr, addr+len-1] на их постоянное место на физическом
носителе. Флаги могут иметь следующие значения:
MS_ASYNC немедленно вернуться, как только спланированы все
операции записи
MS_SYNC вернуться, только когда завершатся все операции записи
MS_INVALIDATE помечает страницы памяти как недействительные. После
этого любое обращение к этим адресам вызывает чтение с
постоянного физического носителя.
msync(3) похож на fsync(2). Точнее говоря, он синхронно обновляет
содержимое диска содержимым буферов памяти. Разница заключается в том,
что fsync(2) обновит весь файл, в то время как msync(3) запишет только
данные в указанном диапазоне.
msync(addr, len, flags)
эквивалентно
memcntl(addr, len, MC_SYNC, flags, 0, 0)
memcntl(2) обсуждается позже в этом курсе. Флаги для msync(3C)
обсуждаются на страницах, посвященных memcntl(2).
СИНХРОНИЗАЦИЯ ПАМЯТИ С ФИЗИЧЕСКИМ НОСИТЕЛЕМ
msync(3)
ИМЯ
msync - синхронизует память с физическим носителем
ИСПОЛЬЗОВАНИЕ
#include <sys/types/h>
#include <sys/mman.h>
int msync(caddr-t addr, size_t len, int flags);
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
успех - 0
неуспех - -1 и errno установлена