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

Ta *_*inh 32 linux open-files

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

请给我一些建议?

Sté*_*nez 45

在 linux 上,可以找到N进程的文件描述符编号PID/proc/$PID/fdinfo/$N. 例子:

$ cat /proc/687705/fdinfo/36
pos:    26088
flags:  0100001
Run Code Online (Sandbox Code Playgroud)

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

$ readlink /proc/$PID/fd/$N
Run Code Online (Sandbox Code Playgroud)

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

  • 你的回答很棒。 (4认同)

Gil*_*il' 13

lsof可以做到这一点,与-o选项。

在 Linux 下,它从 获取其信息/proc,因此您也可以从那里获取它