Você pode rastrear as chamadas de sistema feitas por um programa. Este é o método usual para descobrir quais arquivos ele acessa. A ferramenta para fazer isso é chamada de truss
em muitos sistemas Unix, dtruss
no OSX, strace
no Linux. Vou descrever o uso do Linux aqui; verifique o manual em outros sistemas.
A forma mais simples é
strace myprogram arg1 arg2
Isso imprime um log de todas as chamadas do sistema feitas por myprogram
. ( Example .) Para salvar o log em um arquivo, use a opção -o
. Para também registrar chamadas feitas por subprocessos, use a opção -f
. Para selecionar quais chamadas de sistema são registradas, use a opção -e
. Veja o manual para detalhes sobre o que você pode usar como argumento para -e
. Por exemplo, a chamada a seguir registra chamadas do sistema relacionadas a arquivos (abertura e fechamento, listagem de diretórios, etc.), exceto read
e write
.
strace -e'file,!read,!write' -o /tmp/myprogram.log -f myprogram arg1 arg2