2

我知道什么是稀疏文件,但我不知道像lastlog这样的程序如何或为什么更喜欢这样的文件而不是普通文件。

我知道稀疏文件可用于回送文件系统以节省空间,但这显然对程序来说效率不高,因为它是另一层。

我唯一能想到的就是使用稀疏文件对一个巨大的多维数组(例如矩阵)进行内存有效的随机访问,但我什至不确定这是否是人们使用稀疏文件的目的(我不是即使确定这是否真的比多个文件的性能要高得多)。

4

1 回答 1

1

/var/log/lastlog文件包含有关每个用户最近登录的信息,按 uid 组织。如果未使用 uid 或该用户从未登录过,则不会在该条目的稀疏文件中存储任何数据。

如果 uid 中的编号/etc/passwd有较大的空白,那么/var/log/lastlog文件中也会有相应的较大空白。

这种结构允许多个lastlog进程同时访问/更新文件,而不会锁定或损坏风险。对于更复杂的文件结构,在更新文件时需要锁定以防止损坏。在登录序列期间锁定不是一个好主意。

于 2014-09-30T00:39:56.520 回答