Como descobrir o deslocamento de arquivo de um arquivo aberto?


26

Meu problema é que lsof -p pid consigo descobrir a lista de arquivos abertos de um processo cuja identificação de processo é pid. Mas existe uma maneira de descobrir o deslocamento do arquivo de cada arquivo acessado?

Por favor me dê algumas sugestões ?

Respostas:


38

No linux, você pode encontrar a posição do número Nde processo do descritor de arquivo PIDem /proc/$PID/fdinfo/$N. Exemplo:

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

O mesmo arquivo pode ser aberto várias vezes com posições diferentes usando vários descritores de arquivo, portanto, você deverá escolher o relevante, caso haja mais de um. Usar:

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

para saber qual é o arquivo ao qual o descritor de arquivo correspondente está anexado (pode não ser um arquivo, nesse caso, o link simbólico está oscilando).


11
Sua resposta é ótima.
Ta Thanh Dinh

12

lsofpode fazer isso, com a -oopção

No Linux, ele obtém suas informações /proc, para que você possa obtê-las também.


Faz muito tempo desde a minha última pergunta e não estou aqui há muito tempo. Obrigado pela resposta.
Ta Thanh Dinh

Posso confirmar que isso também funciona. O deslocamento é dado como HEX, no entanto.
Benjamin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.