lseek函数显示地为一个打开文件设置偏移量,文件偏移量能够大于文件的当前长度,在这样的情况下。对该文件的下一次写将加长该文件。并在文件里构成一个空洞,这一点是同意的。
位于文件里但没有写过的字节都被读为0。
eg:
holeFile.c函数创建了一个具有空洞的文件,执行观察:
能够看到,文件里的30个未写入字节都被设置读为0。每一行開始的一个7位数是以八进制形式表示的字节偏移量。
将刚创建的文件与相同长度但舞空洞的文件进行比較
尽管两个文件的长度同样,但无空洞文件占用了20个磁盘块,而具有空洞的文件仅仅占用了8个磁盘块。
原文:http://www.cnblogs.com/wzjhoutai/p/6880188.html