lseek函數顯示地為一個打開文件設置偏移量,文件偏移量可以大於文件的當前長度,在這種情況下,對該文件的下一次寫將加長該文件,並在文件中構成一個空洞,這一點是允許的。位於文件中但沒有寫過的字節都被讀為0。
eg:
holeFile.c函數創建了一個具有空洞的文件,運行觀察:
可以看到,文件中的30個未寫入字節都被設置讀為0。每一行開始的一個7位數是以八進制形式表示的字節偏移量。
將剛創建的文件與同樣長度但舞空洞的文件進行比較
雖然兩個文件的長度相同,但無空洞文件占用了20個磁盤塊,而具有空洞的文件只占用了8個磁盤塊。