檔案空洞

檔案空洞是檔案系統。

基本介紹

  • 中文名:檔案空洞
  • 存在:UNIX檔案操作
  • 撐大:extend
  • 檔案系統:file system
介紹,特點,

介紹

在UNIX檔案操作中,檔案位移量可以大於檔案的當前長度,在這種情況下,對該檔案的下一次寫將延長該檔案,並在檔案中構成一個空洞,這一點是允許的。位於檔案中但沒有寫過的位元組都被設為 0。
如果 offset 比檔案的當前長度更大,下一個寫操作就會把檔案“撐大(extend)”。這就是所謂的在檔案里創造“空洞(hole)”。沒有被實際寫入檔案的所有位元組由重複的 0 表示。空洞是否占用硬碟空間是由檔案系統(file system)決定的。

特點

用ls查看的檔案大小是將空洞算在內的。
cp命令拷貝的檔案,空洞部分不拷貝,所以生成的同樣檔案占用磁碟空間小
用read讀取空洞部分讀出的數據是0,所以如果用read和write拷貝一個有空洞的檔案,那么最終得到的檔案沒有了空洞,空洞部分都被0給填充了,檔案占用的磁碟空間就大了。不過檔案大小不變。
空洞檔案作用很大,例如迅雷下載檔案,在未下載完成時就已經占據了全部檔案大小的空間,這時候就是空洞檔案。下載時如果沒有空洞檔案,多執行緒下載時檔案就都只能從一個地方寫入,這就不是多執行緒了。如果有了空洞檔案,可以從不同的地址寫入,就完成了多執行緒的優勢任務

相關詞條

熱門詞條

聯絡我們