Как узнать смещение открытого файла?

Как узнать смещение открытого файла?

Моя проблема в том, что lsof -p pid я могу узнать список открытых файлов процесса, идентификатор процесса которого 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, поэтому вы можетеполучить его тамтакже.

Связанный контент