Mein Problem ist, dass ich damit
lsof -p pid
die Liste der geöffneten Dateien eines Prozesses herausfinden kann, dessen Prozess-ID pid ist. Aber gibt es eine Möglichkeit, den Dateioffset jeder aufgerufenen Datei herauszufinden?
Bitte geben Sie mir einige Vorschläge.
Antwort1
Unter Linux können Sie die Position der Dateideskriptornummer N
des Prozesses PID
in finden /proc/$PID/fdinfo/$N
. Beispiel:
$ cat /proc/687705/fdinfo/36
pos: 26088
flags: 0100001
Dieselbe Datei kann mehrmals an verschiedenen Positionen mit verschiedenen Dateideskriptoren geöffnet werden. Wenn es also mehrere gibt, müssen Sie den entsprechenden auswählen. Verwenden Sie:
$ readlink /proc/$PID/fd/$N
um zu wissen, an welche Datei der entsprechende Dateideskriptor angehängt ist (es muss sich nicht unbedingt um eine Datei handeln, in diesem Fall hängt der symbolische Link).
Antwort2
lsof
-o
ist dies mit der Option möglich .
Unter Linux erhält es seine Informationen von /proc
, so dass Siehol es dir dortsowie.