Execute strace sem a opção -e
e veja se isso melhora o resultado.
Existem várias maneiras de criar um arquivo. Em vez de open
-ing, é altamente provável que, seja qual for a ferramenta que produz esse arquivo, primeiro abra um arquivo temporário, grave os dados e, em seguida, renomeie o arquivo na conclusão.
Com seu limite atual ( execve,vfork,open,creat
), você não verá esse tipo de comportamento.
Por exemplo, dado este script python simples:
import os
import tempfile
fd = tempfile.NamedTemporaryFile(dir='.', delete=False)
fd.write('this is a test\n')
fd.close()
os.rename(fd.name, 'output')
Executar strace
com seus argumentos e, em seguida, procurar output
nos resultados não gera nada:
$ strace -e trace=execve,vfork,open,creat -o trace -f -s 80 python tmptest.py
$ grep output trace
$
Mas se eu remover o filtro -e
:
$ strace -o trace -f -s 80 python tmptest.py
$ grep output trace
4523 rename("/home/lars/tmp/tmpZDwvPK", "output") = 0
Nos comentários sobre sua pergunta, Sato Katsura fornece um exemplo no qual você não verá seu nome de arquivo de destino na saída strace
, mas acho que é improvável que você o encontre ao executar make
contanto que você inicie com um ambiente de criação limpo.