1 刷新变化函数msync()
进程在映射空间的对共享内容的改变并不直接写回到磁盘文件中,往往在调用munmap()后才执行该操作。
可以通过调用msync()函数来实现磁盘文件内容与共享内存区中的内容一致,即同步操作.
2 函数原型int msync ( void * addr, size_t len, int flags)
3 头文件#include
4 参数
addr:文件映射到进程空间的地址;
len:映射空间的大小;
flags:刷新的参数设置,可以取值MS_ASYNC/ MS_SYNC/ MS_INVALIDATE
其中:
取值为MS_ASYNC(异步)时,调用会立即返回,不等到更新的完成;
取值为MS_SYNC(同步)时,调用会等到更新完成之后返回;
取MS_INVALIDATE(通知使用该共享区域的进程,数据已经改变)时,在共享内容更改之后,使得文件的其他映射失效,从而使得共享该文件的其他进程去重新获取最新值;
5 返回值
成功则返回0;失败则返回-1;
6 可能的错误
EBUSY/ EINVAL/ ENOMEM
阅读(2885) | 评论(0) | 转发(0) |