首页 > 代码库 > Unix - 文件里构成一个空洞的分析

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

        lseek函数显示地为一个打开文件设置偏移量,文件偏移量能够大于文件的当前长度,在这样的情况下。对该文件的下一次写将加长该文件。并在文件里构成一个空洞,这一点是同意的。

位于文件里但没有写过的字节都被读为0。

eg:

技术分享

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

技术分享

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

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

技术分享


技术分享

尽管两个文件的长度同样,但无空洞文件占用了20个磁盘块,而具有空洞的文件仅仅占用了8个磁盘块。

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