msync 函数简介


1 函数简介

如果一个内存区域是用来写入文件,那么被修改过的内存和文件在一段时间内将是不相同的,如果此时需要将进程写入至内存文件中,需要采用msync();
函数所需头文件
#include < sys/mmmap.h>

2 函数原型

int msync(caddr_t addr,size_t length ,int flags);

3 函数参数说明

addr:内存映射时候返回的内存区域
length:内存映射时所指定的长度
flags: 指定内存和磁盘的同步方式
MS_ASYNC:被修改过的内存区域很快就会被同步。MS_ASYNC和MS_SYNC中仅有一个同时被使用;
MS_SYNC:在内存区域中被修改的页面在msync()系统调用返回前就被写入磁盘;
MS_INVALIDATE:这个选项让内核决定是否要把对内存映射区域的修改写入到磁盘中。它并不确保修改的内容不会被写入,只是告诉内核不需要保存此内容;
0:类似于MS_ASYNC 意味着如果有合适的页面需要保存的时候,内核则会将数据写入至磁盘中。

4 函数返回值