Unix & Linux
linux open-files
Updated Fri, 01 Jul 2022 10:47:15 GMT

How to find out the file offset of an opened file?


My problem is that with lsof -p pid I can find out the list of opened file of a process whose process id is pid. But is there a way to find out the file offset of each accessed file ?

Please give me some suggestions ?




Solution

On linux, you can find the position of the file descriptor number N of process PID in /proc/$PID/fdinfo/$N. Example:

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

The same file can be opened several times with different positions using several file descriptors, so you'll have to choose the relevant one in the case there are more than one. Use:

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

to know what is the file to which the corresponding file descriptor is attached (it might not be a file, in this case the symlink is dangling).