Можете ли вы распаковать файловую систему btrfs?

Запустите strace без параметра -e и посмотрите, не что улучшает ваш результат.

Есть несколько способов создать файл. Вместо open , очень вероятно, что любой инструмент, создающий этот файл, сначала откроет временный файл, запишет данные, а затем переименует файл по завершении.

С вашим текущим лимитом ( execve, vfork, open, creat ) вы не увидите такого поведения.

Например, для этого простого скрипта Python:

import os
import tempfile

fd = tempfile.NamedTemporaryFile(dir='.', delete=False)
fd.write('this is a test\n')
fd.close()

os.rename(fd.name, 'output')

Запуск strace с вашими аргументами и последующий поиск вывода в результатах ничего не даст:

$ strace -e trace=execve,vfork,open,creat -o trace -f -s 80 python tmptest.py
$ grep output trace
$

Но если я удалю фильтр -e :

$ strace  -o trace -f -s 80 python tmptest.py
$ grep output trace
4523  rename("/home/lars/tmp/tmpZDwvPK", "output") = 0

В комментариях к вашему вопросу Сато Кацура приводит пример, в котором вы не увидите целевое имя файла в выводе strace , но я думаю, что вы вряд ли столкнетесь с этим при запуске make , если вы начинаете с чистой среды сборки.

3
26.05.2015, 13:15
0 ответов

Теги

Похожие вопросы