如何找出已打开文件的文件偏移量?

如何找出已打开文件的文件偏移量?

我的问题是, lsof -p pid 我可以找到进程 id 为 pid 的进程的打开文件列表。但是有没有办法找出每个访问文件的文件偏移量?

请给我一些建议?

答案1

在Linux上,您可以在 中找到N进程的文件描述符号的位置。例子:PID/proc/$PID/fdinfo/$N

$ cat /proc/687705/fdinfo/36
pos:    26088
flags:  0100001

同一个文件可以使用多个文件描述符在不同的位置打开多次,因此在有多个文件描述符的情况下,您必须选择相关的文件描述符。使用:

$ readlink /proc/$PID/fd/$N

了解相应文件描述符附加到的文件是什么(它可能不是文件,在这种情况下符号链接是悬空的)。

答案2

lsof可以通过选项来做到这一点-o

在 Linux 下,它从 获取信息/proc,因此您可以把它拿到那里以及。

相关内容