Comment connaître l'offset d'un fichier ouvert?


26

Mon problème est qu'avec lsof -p pid je peux trouver la liste des fichiers ouverts d'un processus dont l'ID de processus est pid. Mais existe-t-il un moyen de connaître le décalage de fichier de chaque fichier consulté?

Veuillez me donner quelques suggestions?

Réponses:


38

Sous Linux, vous pouvez trouver la position du numéro Nde descripteur de fichier du processus PIDdans /proc/$PID/fdinfo/$N. Exemple:

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

Le même fichier peut être ouvert plusieurs fois avec différentes positions à l'aide de plusieurs descripteurs de fichier, vous devrez donc choisir celui qui convient au cas où il y en aurait plusieurs. Utilisation:

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

pour savoir quel est le fichier auquel le descripteur de fichier correspondant est attaché (il ne s'agit peut-être pas d'un fichier, dans ce cas le lien symbolique est suspendu).


1
Votre réponse est excellente.
Ta Thanh Dinh

12

lsofpeut le faire, avec l' -ooption.

Sous Linux, il obtient ses informations /proc, vous pouvez donc également les obtenir .


Cela fait longtemps que je n'ai pas posé ma dernière question, et je ne suis pas ici depuis longtemps. Merci pour la réponse.
Ta Thanh Dinh

Je peux également confirmer que cela fonctionne. Le décalage est cependant donné en HEX.
Benjamin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.