Como descobrir o deslocamento do arquivo de um arquivo aberto?

24

Meu problema é que com %código% Eu posso descobrir a lista de arquivos abertos de um processo cujo id de processo é pid. Mas existe uma maneira de descobrir o deslocamento do arquivo de cada arquivo acessado?

Por favor, me dê algumas sugestões?

    
por Ta Thanh Dinh 22.03.2012 / 16:50

2 respostas

34

No linux, você pode encontrar a posição do número do descritor de arquivo N do processo PID in /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, então você terá que escolher o relevante, caso haja mais de um. Use:

$ 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, neste caso, o link simbólico está pendurado).

    
por 22.03.2012 / 17:07
12

lsof pode fazer isso com a opção -o .

No Linux, ele obtém as informações de /proc , então você pode chegar lá também.

    
por 23.03.2012 / 02:44