Chinaunix首页 | 论坛 | 博客
  • 博客访问: 142007
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 134
  • 用 户 组: 普通用户
  • 注册时间: 2014-09-21 12:40
个人简介

努力奔跑!

文章分类

全部博文(30)

文章存档

2017年(1)

2016年(3)

2015年(3)

2014年(23)

我的朋友

分类: LINUX

2014-10-08 14:44:14

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
阅读(2745) | 评论(0) | 转发(0) |
0

上一篇:C中的access函数

下一篇:memcpy()函数

给主人留下些什么吧!~~