码迷,mamicode.com
首页 > 其他好文 > 详细

Unix - 文件中构成一个空洞的分析

时间:2015-08-17 12:11:01      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:unix   linux   hole   lseek   offset   

        lseek函数显示地为一个打开文件设置偏移量,文件偏移量可以大于文件的当前长度,在这种情况下,对该文件的下一次写将加长该文件,并在文件中构成一个空洞,这一点是允许的。位于文件中但没有写过的字节都被读为0。

eg:

技术分享

holeFile.c函数创建了一个具有空洞的文件,运行观察:

技术分享

可以看到,文件中的30个未写入字节都被设置读为0。每一行开始的一个7位数是以八进制形式表示的字节偏移量。

将刚创建的文件与同样长度但舞空洞的文件进行比较

技术分享


技术分享

虽然两个文件的长度相同,但无空洞文件占用了20个磁盘块,而具有空洞的文件只占用了8个磁盘块。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Unix - 文件中构成一个空洞的分析

标签:unix   linux   hole   lseek   offset   

原文地址:http://blog.csdn.net/zyq522376829/article/details/47720855

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!