mmap映射
共享内存
-
mmap函数:
void *mmap(void *adrr, size_t length, int prot, int flags, int fd, off_t offset);参数:
ddr: 建立映射区的首地址,由Linux内核指定。使用时,直接传递NULL
length: 欲创建映射区的大小(文件的大小)
prot: 映射区权限PROT_READ、PROT_WRITE、PROT_READ|PROT_WRITE
flags: 标志位参数(常用于设定更新物理区域、设置共享、创建匿名映射区) MAP_SHARED: 会将映射区所做的操作反映到物理设备(磁盘)上。 MAP_PRIVATE: 映射区所做的修改不会反映到物理设备。
fd: 用来建立映射区的文件描述符
offset: 映射文件的偏移(4k的整数倍)返回值:成功:返回创建的映射区首地址;失败:MAP_FAILED宏
-
借助共享内存访问磁盘文件
借助指针访问磁盘文件
-
父子进程、血缘关系进程 通信
-
匿名映射区
了解mmap( )函数的使用
实例代码:
#include<stdio.h>
#include<unistd.h>