mmap的真正作用

来源:互联网 发布:大数据英语怎么说 编辑:程序博客网 时间:2024/06/05 11:47

最近看了一些关于linux内核源代码解析的说,发现从内部机制对原来了解的一些linux内核的函数有了一些新的认识;

如 mmap.

函数定义及被包含的头文件如下:

#include <sys/mman.h>

void *mmap(void *start, size_t length, int prot, int flags,int fd, off_t offset);

start:被映射内存的开始地址,一般都设置为0,有操作系统决定;

length:映射区的长度。//长度单位是 以内存页为单位

prot:期望的内存保护标志,不能与文件的打开模式冲突

flags:指定映射对象的类型,映射选项和映射页是否可以共享。它的值可以是一个或者多个以下位的组合体

fd:有效的文件描述词。一般是由open()函数返回,其值也可以设置为-1,此时需要指定flags参数中的MAP_ANON,表明进行的是匿名映射。

offset:被映射对象内容的起点。


mmap函数其实就是把物理地址映射到虚拟地址,可以由用户空间的进程进行操作,起到一个虚实地址转换的作用;



原创粉丝点击