一直对与mmap系统调用的描述感到十分困惑,描述大体都是说用mmap把文件映射到内存,所以可以想访问内存一样访问文件。于是对mmap调用进行了研究。
简单的说mmap就是在页高速缓存中建立一个缓存页,将文件中需要映射的部分拷贝到缓冲页中,并建立线性地址映射,这样在用户空间访问的这部分线性区就会映射到缓冲页中,于是我们可以调用类似memcpy这类的函数在用户空间直接对缓冲页进行操作。而缓冲页中的数据更新后最终会写回文件系统,所以就达到了访问内存来访问文件的目的,不过平时用mmap的场合应该比较少吧,但是对于进程通信mmap是不可或缺的成分。
阅读(1426) | 评论(0) | 转发(0) |