当前位置:  技术问答>linux和unix

文件空洞

    来源: 互联网  发布时间:2016-05-20

    本文导语:  在Unix系统上,如果打开一个文件后,使用lseek使得文件的偏移量超过文件的结尾,再写入一些东西,那么在文件中就会产生空洞。read函数读取文件时,空洞部分被读作0.但是,这些0实际上不在磁盘上。使用du就可以看...

在Unix系统上,如果打开一个文件后,使用lseek使得文件的偏移量超过文件的结尾,再写入一些东西,那么在文件中就会产生空洞。read函数读取文件时,空洞部分被读作0.但是,这些0实际上不在磁盘上。使用du就可以看出来
问题是,如果我想写一个程序,拷贝一个文件,但是要把其中的空洞部分去掉,怎么办?(apue上的一道题目,没思路)

|
1. 文件是可以有空洞的,空洞不占用磁盘空间,但是我们用ls查看的文件大小是将空洞算在内的。 
2. cp命令拷贝的文件,空洞部分不拷贝,所以生成的文件同样占用磁盘空间小
3. 用read读取空洞部分读出的数据是0,所以如果用read和write拷贝一个有空洞的文件,那么最终得到的文件没有了空洞,空洞部分都被0给填充了,文件占用的磁盘空间就大了。不过文件大小不变。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 怎么统计一个文件夹下有多少个文件(不包括文件夹)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • MyEclipse如何查看和设置文件编码格式相关操作
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,