首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

学习mmap

通常我们都说是通过调用 malloc来申请堆上内存,但实际上其内部实现使用了 brk和 mmap两种系统调用,当申请的内存大于128K时,使用 mmap 典型用法是无需提供打开的文件句柄, 使用 MAP_PRIVATE...| MAP_ANONYMOUS flag void *addr = mmap (NULL, buffer_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS..., -1, 0); mmap的写时拷贝 如果我们在调用mmap时提供一个打开的文件句两,但使用 MAP_PRIVATE的flags, 那这时对其的写操作并不能真正修改对应的磁盘文件,它会作写时拷贝...mmap映射的是磁盘文件,其存在物理页的内容会被清空,pte将记录这种情况,再次需要访问时,会重新读取磁盘文件,缓存在page cache中; 如果使用mmap作匿名映射,没有相关联的磁盘文件(或者使用MAP_PRIVATE

80840
领券