Loading

内存映射(mmap)

首部

内存映射

2020-12-28_09-15

应用背景

问题:

2020-12-28_09-23

当数据量规模较大时

带来大量的系统开销

解决方式:

2020-12-28_09-24

应用层->操作设备

函数原型

#include <sys/mman.h>
void *mmap(void *addr, size_t length, int prot, int flags,
           int fd, off_t offset);
int munmap(void *addr, size_t length);

mmap参数

2020-12-28_09-30

参数 含义
void *add 映射首地址
size_t length 映射的内存长度
int prot 保护权限
int flags 是否共享
int fd 文件描述符
offset 偏移量(字节)

eg:

//操作 argb lcd屏幕
void * pLcd = mmap(NULL, width * length * 4, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);

注意映射需要手动释放虚拟空间 munmap

posted @ 2020-12-28 15:27  流缘飞雨  阅读(208)  评论(0)    收藏  举报