lsof 输出中的文件偏移到底是什么?

Sea*_*ean 3 rhel centos lsof

lsof用来追踪仍然占用空间的已删除文件,我意识到我不太确定相对于文件的偏移量是什么。lsof的手册页在这方面没有多大帮助,四处搜索我无法清楚地了解它是什么。

什么是文件偏移量,为什么拥有这条信息很有用?

Sam*_*amB 6

斯蒂芬·基特(Stephen Kitt)的答案很接近,但并不完全正确;如果我们更仔细地阅读lseek(2),我们会发现它实际上是这样写的(粗体是我的):

lseek ( ) 函数重新定位与文件描述符fd关联的打开文件描述的文件偏移量[...]

那么,什么是“打开文件描述”以及它与“文件描述符”有何关系?

好吧,在注释部分,我们发现:

有关文件描述符、打开文件描述和文件之间关系的讨论,请参阅open(2) 。

完美的!然而,我不会粘贴手册页中的大量文本,而是直接链接到“什么是打开的文件描述?”的一个很好的答案。这解释了同样的事情。


Ste*_*itt 5

偏移量是文件中的当前位置,由内核为给定的文件描述维护(有关详细信息,请参阅lseek(2)open(2)联机帮助页)。

至于为什么它在lsof的输出中很有用,我不太确定。尽管它不会涵盖所有情况(内存映射文件不会显示偏移更改),但它可以通过文件提供进程进度的一些概念。