免费注册 查看新帖 |

Chinaunix

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

如何截断一个大文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-19 11:36 |只看该作者 |倒序浏览
各位大虾,我需要截断一个大文件,不知道如何做,请教大家。具体情况如下:
比如我有一个大文件 5G, 我想截掉从开始的1G。 本来可以把后面4G 读到缓冲区中,然后写到临时文件,最后删掉原文件,把临时文件改名成原来的文件。但是这样做效率比较低,时间长。请问各位大虾,有没有效率更高的方法阿?
我听说用内存映射的方法会快些,但是查了好久不得要领,清各位帮帮忙。

论坛徽章:
0
2 [报告]
发表于 2007-03-19 14:23 |只看该作者
原帖由 robot_chen 于 2007-3-19 11:36 发表
各位大虾,我需要截断一个大文件,不知道如何做,请教大家。具体情况如下:
比如我有一个大文件 5G, 我想截掉从开始的1G。 本来可以把后面4G 读到缓冲区中,然后写到临时文件,最后删掉原文件,把临时文件改名成 ...


在IA-32计算机中,虚拟地址空间最大只有4G,你不可能将剩下的4G读到缓冲区中,只能够一段一段的读。
即使是采用PAE,也只是内核可以寻址64G,对于进程的寻址范围还是4G。

评分

参与人数 1可用积分 +2 收起 理由
langue + 2 精品文章

查看全部评分

论坛徽章:
0
3 [报告]
发表于 2007-03-19 17:48 |只看该作者
原帖由 robot_chen 于 2007-3-19 11:36 发表
我听说用内存映射的方法会快些


我感觉一样呢?能否解释一下?
要是截断前面和后面效率一样高就好了,就可能会有个这样的系统调用.

论坛徽章:
0
4 [报告]
发表于 2007-03-20 10:04 |只看该作者

回复 2楼 CUDev 的帖子

谢谢回复,我知道这点,只是这不是问题的重点,所以没有详细写
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP