Як дізнатися зміщення файлу відкритого файлу?


26

Моя проблема полягає в тому, що lsof -p pid я можу дізнатися список відкритого файлу процесу, ідентифікатор процесу - pid. Але чи є спосіб дізнатися зміщення файлу кожного файлу, що доступ до нього?

Будь ласка, дайте мені кілька пропозицій?

Відповіді:


38

У Linux, ви можете знайти позицію номера дескриптора Nпроцесу PIDв /proc/$PID/fdinfo/$N. Приклад:

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

Один і той же файл можна відкрити кілька разів з різних позицій, використовуючи кілька дескрипторів файлів, тому вам доведеться вибрати відповідний, якщо їх більше, ніж один. Використання:

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

знати, який файл, до якого додається відповідний дескриптор файлу (це може бути не файл, в цьому випадку симпосилання звисає).


1
Ваша відповідь чудова.
Та Тхань Дінь

12

lsofможна зробити це, з -oможливістю.

Під Linux він отримує свою інформацію /proc, тому ви також можете отримати їх там .


З мого останнього питання минуло багато часу, і я давно не був тут. Дякую за відповідь.
Ta Thanh Dinh

Я можу підтвердити це також. Зсув подається як HEX.
Бенджамін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.