栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

快速调整mmap文件的大小

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

快速调整mmap文件的大小

对于我来说,很难想象您不知道文件可以多大的上限。假设是这样,您可以通过在首次使用mmap()映射文件时提供该大小来“保留”文件的最大大小。当然,超出文件实际大小的任何访问都将导致访问冲突,但这就是您无论如何都希望其工作的方式-
您可能会争辩说,保留额外的地址空间 可确保 访问冲突,而不是使该地址范围不开放被诸如mmap()或malloc()之类的其他调用所使用。

无论如何,关键是我的解决方案,您永远不会 移动 地址范围,只更改其大小,现在锁定就在为每个线程提供当前有效大小的数据结构周围。

如果文件太多,则每个文件的最大映射都使您用尽了地址空间,那么我的解决方案将不起作用,但是这是64位地址空间的使用期限,因此希望最大映射大小没有问题。

(只是为了确保我不会忘记一些愚蠢的东西,我确实写了一个小程序说服自己,当您尝试访问超出文件大小的文件时,创建大于文件大小的映射会导致访问冲突,然后可以正常工作一旦将文件ftruncate()变大,所有文件都将从第一次mmap()调用返回的地址相同。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373023.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号