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?