¿Cómo encontrar el desplazamiento del archivo de un archivo abierto?


26

Mi problema es que lsof -p pid puedo encontrar la lista de archivos abiertos de un proceso cuya identificación de proceso es pid. Pero, ¿hay alguna manera de averiguar el desplazamiento del archivo de cada archivo accedido?

Por favor, dame algunas sugerencias ?

Respuestas:


38

En Linux, se puede encontrar la posición del número de descriptor de archivo Ndel proceso PIDen /proc/$PID/fdinfo/$N. Ejemplo:

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

El mismo archivo se puede abrir varias veces con diferentes posiciones usando varios descriptores de archivo, por lo que tendrá que elegir el relevante en caso de que haya más de uno. Utilizar:

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

para saber cuál es el archivo al que se adjunta el descriptor de archivo correspondiente (puede que no sea un archivo, en este caso, el enlace simbólico está colgando).


1
Tu respuesta es genial.
Ta Thanh Dinh

12

lsofpuede hacer esto, con la -oopción

En Linux, obtiene su información /proc, por lo que también puede obtenerla allí .


Ha pasado mucho tiempo desde mi última pregunta, y no he estado aquí por mucho tiempo. Gracias por la respuesta.
Ta Thanh Dinh

Puedo confirmar que esto también funciona. Sin embargo, el desplazamiento se da como HEX.
Benjamin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.