Anda bisa menunggu file dibuka sehingga Anda dapat mempelajari fd dan melampirkan strace setelah proses diluncurkan seperti ini:
strace -p pid -e trace=file -e read=fd
Pertama, Anda mungkin tidak perlu melacak karena memetakan antara fd dan path tersedia dalam /proc/PID/fd/ .
Kedua, mungkin Anda harus menggunakan trik LD_PRELOAD dan membebani di C open , seek dan read panggilan sistem. Ada beberapa artikel di sana-sini tentang cara membebani malloc/gratis.
Saya kira tidak akan terlalu berbeda untuk menerapkan trik yang sama untuk panggilan sistem tersebut. Itu perlu diimplementasikan dalam C, tetapi harus menggunakan kode yang jauh lebih sedikit dan lebih tepat daripada mem-parsing strace keluaran.
ekstrak waktu rata-rata dari ping -c
Apa arti titik dua (:) dan tanda hubung (-) dalam nomor versi dpkg Ubuntu?