bash - 用C或python2.6如何切掉文件头部某些字节? (要求类似ftruncate那样无缓存操作)
高洛峰
高洛峰 2017-04-17 16:57:11
0
1
329

貌似ftruncate只能从文件头部开始截取,删除尾部的字节.
我现在需要在文件开头削掉部分字节, 但是又不想用那种写个缓存/临时文件的方法, 因为是在手机上使用,内存和硬盘都很紧张, 临时文件的方法效率也太低, 要不然一个tail命令也够了. 文件足够大, 只要删除很少字节(字节数不固定)的头部, 高效的方法应该是无视文件大小能瞬间完成操作那种.
或者有没有办法在磁盘上把文件的起始位置指定为我需要的位置(跳过部分字节), 比如要切掉一个文件的前20个字节, 磁盘记录文件的时候应该会记录文件的第一个字节的位置吧, 如果把这个记录改成第20个字节的位置应该就是最高效的文件头切割方式了.
要求使用python2.6, 如果python不好使, c也可以, 但是需要源码能被gcc-4.4.1编译, 手机上的编译器只支持到这个版本...

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(1)
Peter_Zhu

檔案在磁碟上是以資料區塊的形式儲存的,所以索引表存的是資料區塊的編號而不是位元組位址,檔案頭必須和資料區塊頭對齊,檔案尾則不必,所以刪除尾部是可行的,刪除頭部不行,除非有檔案系統的資料區塊的大小為1byte,不過應該沒有.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!