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.