Potresti aspettare che i file vengano aperti in modo da poter apprendere fd e allegare strace dopo l'avvio del processo in questo modo:
strace -p pid -e trace=file -e read=fd
Innanzitutto, probabilmente non hai bisogno di tenere traccia perché la mappatura tra fd
e path
è disponibile in /proc/PID/fd/
.
Secondo, forse dovresti usare il trucco LD_PRELOAD e sovraccaricare in C open
, seek
e read
chiamata di sistema. Ci sono alcuni articoli qua e là su come sovraccaricare malloc/free.
Immagino che non sarà troppo diverso applicare lo stesso tipo di trucco per quelle chiamate di sistema. Deve essere implementato in C, ma dovrebbe richiedere molto meno codice ed essere più preciso dell'analisi strace
uscita.