免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1496 | 回复: 1
打印 上一主题 下一主题

关于mmap的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-28 11:36 |只看该作者 |倒序浏览
似乎在mmap和msync中指定的长度不怎么管用,所有我们的输入数据都写入了文件中,但是不会超过原来文件的长度.
比如我分别在mmap 和msync中指定的长度为5,10 实际写入到内存中的数据为20则这些都会写入到mmap的文件中去,但是如果文件原来的长度为40的话 如果写入数据超过40就不能再写入该文件了

请问mmap和msync中的长度究竟有什么用处呢?似乎不怎么管用啊

如果我想用mmap做内存映射之后 改变了内存同时改变文件内容如何才能增加新的东西呢如果超过文件的长度的话

论坛徽章:
0
2 [报告]
发表于 2006-09-28 15:32 |只看该作者
就像内存超界一样,debug状态下一般不会引发错误,mmap的长度仅仅是一个指示,因为映射的是以页面为单位的,访问超过指定长度一般也不会引发错误,但是如果非法长度跨过一个页面的话,就会出错了,你可以创建一个长度为8的文件,映射为4096或8192以上,写操作应该会总线错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP