内存映射:
1. 打开被映射文件;
2. 调用mmap;
作用: 将一个给定文件映射到一个存储区域中。
#include <sys/mman.h>
void * mmap(void* addr, size_t len, int prot, int flag, int fields, off_t off);
返回值:若成功则返回映射区的起始地址,若出错则返回MAP_FAILED
addr: 用于指定映射存储区的起始地址。通常将其设置为0, 这表示由系统选择该映射区的起始地址。
len: 映射的字节数;
prot: 该参数说明对映射区的保护,
可将prot指定为PROT_NONE,或者是PROT_READ、PROT_WRITE、PROT_EXEC任意组合的按位或。
对指定映射存储区的保护 要求不能超过文件open模式访问权限。例如,若该文件是只读打开的,那么对映射存储区就不能指定PROT_WRITE。
flag: 影响映射存储区的多种属性
MAP_SHARED:指明对映射区数据的修改,多个共享该映射区的进程都可以看见,而且会反映到实际的文件
MAP_PRIVATE:指明对映射区数据的修改不会影响 真正的文件
fields: 被映射文件描述符
off: 被映射字节在文件中的起始偏移量。