[問題] 請問linux檔案系統在ext2/3處理file hole
請問ext2/3 檢查block是不是hole(未實際配置空間)
有什麼有效的方法嗎?
read都是'/0'似乎不是一個判斷的好方法
我找了很多資料
好像可以從inode下手 有一個bmap的東西
不過那好像非常底層
我翻系統程式的書 沒有查到inode的操作的部分
網頁上在userspace可以抓到inode的block配置資訊的方法
目前還沒有看到...
另外很多討論都不建議去碰inode...
(不過我只是要看他有沒有配置空間來判斷是不是hole所以 大概 還好吧@@)
頂多就是stat可以抓到 inode number然後也就這樣而已
網路找到的資料是可以用 ioctl() 裡面flag用 FIEMAP 可以用到fiemap這個結構
裡面有一些資訊可以判斷是不是hole 不過這似乎是ext4才有支援...
另外也有找到另一個ioctl()裡面用FIBMAP 不過這個好像要從頭開始檢查
(我猜可以搭lseek跳到要檢查的offset...)
重點是這個要root權限才能用...
請問檢查檔案的某個block(或offset)是不是hole
有沒有什麼比較有效的方法嗎? 謝謝@@...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.50.129
→
05/19 03:21, , 1F
05/19 03:21, 1F
→
05/19 03:23, , 2F
05/19 03:23, 2F
→
05/19 03:30, , 3F
05/19 03:30, 3F
→
05/19 03:32, , 4F
05/19 03:32, 4F
→
05/19 03:32, , 5F
05/19 03:32, 5F
→
05/19 03:33, , 6F
05/19 03:33, 6F
→
05/19 03:34, , 7F
05/19 03:34, 7F