内存映射(mmap)
内存映射

应用背景
问题:

当数据量规模较大时
带来大量的系统开销
解决方式:

应用层->操作设备
函数原型
#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参数

| 参数 | 含义 |
|---|---|
| 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

浙公网安备 33010602011771号