web-dev-qa-db-ja.com

開いたファイルのファイルオフセットを見つける方法は?

私の問題は、lsof -p pidプロセスIDがpidであるプロセスの開いているファイルのリストを見つけることができます。しかし、アクセスされた各ファイルのファイルオフセットを見つける方法はありますか?

いくつかの提案をお願いします?

28
Ta Thanh Dinh

Linuxでは、/proc/$PID/fdinfo/$NでプロセスNのファイル記述子番号PIDの位置を確認できます。例:

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

複数のファイル記述子を使用して、同じファイルを異なる位置で数回開くことができるため、複数ある場合は関連するファイルを選択する必要があります。使用する:

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

対応するファイル記述子が添付されているファイルを知る(ファイルではない可能性があります。この場合、シンボリックリンクはぶら下がります)。

41

lsofは、-oオプションを使用してこれを行うことができます。

Linuxでは、/procから情報を取得するので、 そこに取得 することもできます。