2014-09-30 60 views
2

我知道sparse file是什麼,但我不知道如何或爲什麼像lastlog這樣的程序會喜歡這樣的文件,而不是普通文件。爲什麼程序想要/更喜歡使用稀疏文件?

我知道稀疏文件可以用於循環備份文件系統以節省空間,但對於程序來說,這顯然對其它層不太有效。

我能想到的唯一的事情是使用稀疏文件進行內存有效的隨機訪問巨大的多維數組(例如矩陣),但我甚至不確定這是人們使用稀疏文件(和我甚至不確定這是否真的比多個文件更高性能)。

回答

1

/var/log/lastlog文件包含有關每個用戶最近登錄的信息,由uid組織。如果未使用uid或該用戶從未登錄過,則不會將該數據存儲在該條目的稀疏文件中。

如果/etc/passwd中的uid編號存在較大間隙,那麼在/var/log/lastlog文件中將會有相應的較大間隙。

此結構允許多個lastlog進程同時訪問/更新文件,而不會鎖定或存在損壞風險。使用更復雜的文件結構時,需要鎖定以防止更新文件時發生損壞。登錄序列中的鎖定不是一個好主意。

+0

我完全忘了文件鎖定和併發問題。我可以看到內存,但鎖定似乎非常有效。我很好奇爲什麼我在更多的應用程序中看不到稀疏文件。我猜它不是很平臺。 – 2014-09-30 00:45:13

相關問題