关于 mmap 映射的内存的释放问题。
#include <sys/mman.h>
void *mmap(void *addr, size_t len, int prot, int flag, int fd, off_t off);
// 若执行成功, 则返回映射区的起始地址;若出错,则返回 `MAP_FAILED` 。
其参数含义与可选选项可以参照这里。
mmap
映射的空间应该使用 munmap
释放, 而非 free
,使用 munmap
后其空间将被自动释放。而如果使用 free
释放的话,将会导致程序卡死。