Strace с перенаправлением - PullRequest
       22

Strace с перенаправлением

0 голосов
/ 25 сентября 2019

Как использовать strace для включения перенаправления вывода (>), например:

strace echo Hello > /tmp/file

Полученный вывод учитывает только echo hello, но не > /tmp/file

Я также пытался:

alice@vm:~$ strace -e trace=open,close,read,write echo Hello > /tmp/file

close(3)                                = 0
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\34\2\0\0\0\0\0"..., 832) = 832
close(3)                                = 0
close(3)                                = 0
write(1, "Hello\n", 6)                  = 6
close(1)                                = 0
close(2)                                = 0
+++ exited with 0 +++

Это показывает, что он пишет в стандартный вывод (дескриптор файла 1), но нигде не показывает, что он перенаправляет в /tmp/file.

1 Ответ

0 голосов
/ 25 сентября 2019

Команда Stracing с перенаправлением

strace sh -c "echo Hello > /tmp/foo"


Перенаправление вывода strace в выходной поток

Из страница man strace :

Имя каждого системного вызова, его аргументы и возвращаемое значение выводятся при стандартной ошибке или в файл, указанный с помощью опции -o.

Итак, вот какмы можем перенаправить стандартную ошибку в некоторый файл:

strace echo Hello 2>/tmp/file

Другой вариант - использовать флаг -o:

strace -o"/tmp/file2" echo hello

...